0

これで髪を引っ張ると、非常に単純なことはわかっていますが、解決するのに苦労しています。記録のために、私は CakePHP 2.2 を使用しています。

選択入力に関連するモデル データを入力しようとしています。

基本的に、users と user_statuses があります。ユーザー モデルは UserStatus モデルに属します。user/add() 関数内で、ドロップダウン選択ボックスに UserStatus モデルのデータを入力したいと考えています。

コードは次のとおりです。

ユーザーコントローラー/追加()

$groups = $this->User->Group->find('list');
$UserStatus = $this->User->UserStatus->find('list');
$this->set(compact('groups', 'UserStatus'));

View/Users/add.ctp

echo $this->Form->input('user_status_id', array('class' => 'span9'));

リレーションシップを作成する users テーブルのフィールドは、user_statuses テーブルの ID にリンクする user_status_id です。

上記に基づいて、選択ボックスには user_statuses テーブルからのステータスが取り込まれません。興味深いことに、ビュー コードを次のように変更すると、次のようになります。

echo $this->Form->input('user_status_id', array('class' => 'span9'));

ただし、これを行うと、データベースには書き込まれません。

どんな助けでもありがたく受け取られます。

前もって感謝します。

4

2 に答える 2

2

options paramは表示の問題を解決するはずであり、Userテーブルにuser_status_idがある限り、以下のコードは保存時にUserモデルに値を保存する必要があります。

echo $this->Form->input('User.user_status_id', array('options'=>$UserStatus,'class' => 'span9'));
于 2012-10-25T15:30:20.123 に答える
2

次のようにする必要があります。

$userStatus = $this->User->UserStatus->find('list');

(小文字の「u」に注意してください)

于 2012-10-25T15:42:33.277 に答える