2011-07-22 12 views
0

http://localhost/bekzcart/admin/users/edit/6構造のidフィールドに関する問題があります。CakePHPでの編集時にURLの `id`フィールドに問題があります

私はユーザー用に6つのフィールドを持っていますが、すべてモデルを通じて「空でない」として検証されています。 1人のユーザーを編集している間、私は1つの隠しフィールドを置く

フォームを送信すると、当然、「空でない」というエラー(モデルから来る)が表示されます。そのフィールドに何も入力しなければ、私は再び提出をヒットし、今問題に直面しています。

今回は、URLの「id」フィールドが今やなくなっていて、http://localhost/bekzcart/admin/users/edit)、データベースに新しいエントリがあります(理想的には更新する必要があります)。

どのようなエラーが考えられますか?

マイユーザーコントローラー:

class UsersController extends AppController { 
    var $name = 'Users'; 

    function admin_edit($id) { 
     $this->User->id = $id; 
     $userLevels = $this->User->Level->find('list', array('fields' => array('LEVEL_ID', 'lEVEL_NAME'))); 
     $this->set('levels', $userLevels); 

     if (empty($this->data)) { 
      $this->data = $this->User->read(); 
     } else { 
      $this->User->set($this->data); 

      if ($this->User->validates(array('fieldList' => array('USER_LOGIN', 'USER_NAME', 'USER_EMAIL', 'USER_ADDRESS', 'USER_PHONE')))) { 
       $this->data['User']['USER_MODIFIED'] = DboSource::expression('NOW()'); 

       if ($this->User->save($this->data)) { 
        $this->Session->setFlash(__('Edit User Success.', true)); 
       } else { 
        $this->Session->setFlash(__('Something wrong with the query', true));  
       } 
      }  
     }     
    } 
} 

ユーザーモデル:

class User extends AppModel { 
    var $name = 'User'; 
    var $primaryKey = 'USER_ID'; 

    // Validation in here 
    // Association in here 
} 

マイ関連ビュー:事前のためのadmin_edit.ctp

$this->Form->input('id', array('type' => 'hidden')) // The Hidden Id Not Work 

多く、多くのおかげで、

regrad

ブライアン...

+0

であるあなたは、コードの3つのページを入力しますが、「ありがとう」を省略することができますか? :-S –

+0

ホホホ残念です。平和\^- ^/ – brian

+0

Hehe、乾杯。しかし、深刻なことに、これはふるいにかける**ロット**のコードです。あなたは、問題を示す最小限のコード例に質問を沸かせると、実装の不必要な詳細を読者に知らせることなく、より多くの関心を集めることが一般的に分かります。 –

答えて

0

フィールドid、この場合には、関連するテーブルで使用される主キーによって置き換えられなければならないが、USER_ID

$this->Form->input('USER_ID', array('type' => 'hidden')) 
0

どのケーキのバージョンを使用していますか?最新のものに更新すると、echo $this->Form->input('id');は自動的に非表示になります。

<form id="AdminUserEditForm" accept-charset="utf-8" action="/admin/users/edit/1" method="post"> 

つ以上の提案:

とフォームを生成し、完全なコードを投稿するには、出力形式は次のようなものである必要があり、ユーザーに「作成」と「修正」フィールドを追加しますテーブル(datetime型)。ケーキはあなたのためにこれらのフィールドを追跡します。

+0

私のケーキのバージョンは1.3です。問題は解決しました。フィールド 'id'は、テーブルによって使用される主キーでなければなりません。私は 'id 'を' USER_ID'で変更して、今はすべてうまくいきます。お返事をありがとうございます – brian

関連する問題