4

カテゴリのドロップダウン リストを作成しようとしています。これで問題ないと判断された場合は、データベースである必要があります。

モデル:

カテゴリーvar $hasMany = 'Product';

製品var $belongsTo = 'Category';

ProductsController 追加機能:

$this->loadModel('Category');
        $this->set('Categories',$this->Category->find('list',array('order'=> array('Category.name'))));
        $this->set(compact('Categories'));  
4

2 に答える 2

5

ビューで変数「$Categories」を2回設定しているという点で、Nebojsacは正しいです。実際、$this->set(compact('Categories'));set() への最初の呼び出しを空白の値で実際に上書きしている可能性があります。次のいずれかを使用する必要があります。

$this->set('categories', $this->Category->find('list'));

また:

$categories = $this->Category->find('list');
$this->set(compact('categories'));

コンパクトを使用すると、$categories という名前の変数が検索され、ビューでアクセスできるようにその変数が $categories に設定されます。

または外部キーが何であれcategory_id)フィールドにカテゴリが自動的に入力されるようにするには、モデルを含むフォームを使用してフォームを作成していることを確認する必要があります。Product

echo $this->Form->create('Product');

また、フォーム入力は次のようにする必要があります。

echo $this->Form->input('category_id');

ドロップダウンのオプションを手動で指定する場合は、 を使用してカテゴリをビューにもう一度渡すことができます$this->set('categories', $this->Category->find('list'));

次に、ビュー ファイルで、options配列キーを $categoriesに設定します。

echo $this->Form->input('category_id', array('type' => 'select', 'options' => $categories));
于 2012-07-23T01:08:22.130 に答える
3

所属するカテゴリ テーブルに関連付けられた製品モデル テーブルがあることを願っています。カテゴリのデータをドロップダウン リストに表示したい。

$Categories= $this->Product->Category->find('list'); $this->set(compact('Categories'));

そしてあなたのctpページでこれを行います

echo $this->Form->input('category_id');

于 2015-09-24T12:06:25.313 に答える