0

モデルのフィールドを選択リストに配置したいと考えています。私はこのコードを持っています..

brand.php & car.php モデル

 class Brand extends AppModel{ 
  var $name = 'Brand'; 
  var $hasMany = 'Car'; 
 }
 <?php   
 class Car extends AppModel{ 
  var $name = 'Car'; 
  var $belongsTo = 'Brand'; 
 } 
 ?>

コントローラー

   <?php 
   class CarsController extends AppController{
   var $name = 'Cars';
   function index(){
   $this->set('id', $this->Car->find('all'));
   }
   }
  ?>

これはビュー index.ctp です

<?php   
echo $form->create('Search'); 
foreach($id as $options){ 
     echo $options['Brand']['name']."<br>";  // it works
$values = array(); 
$values[] = $options['Brand']['name']; // doesnt work!

} 
echo $this->Form->select('one', $values); // the values for selects just the last one
echo $form->end('search'); 
?>

では、Brand.php モデルのオプション値のフィールドと ID を選択リストに配置するにはどうすればよいでしょうか??

4

2 に答える 2

2

find('all')呼び出しを呼び出しに変更find('list')し、ブランド モデルで呼び出します。

これにより、すべてのレコードのid=>を含む連想配列が取得されます。モデルで指定することにより、フィールドが表示フィールドであると変更できますdisplayFieldBrandvar $displayField = 'my_field';

于 2012-05-09T23:58:21.967 に答える
1

コントローラーで:

$this->set('brands', $this->Car->Brand->find('list'));

あなたの見解では:

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

Cake は自動的に $brands ビュー変数を brand_id フィールド オプション リストにリンクします。

于 2012-05-10T16:05:02.077 に答える