将模型的值放在选择列表中

时间:2012-05-09 23:20:24

标签: cakephp selectlist

我想将模型中的字段放在选择列表中。 我有这个代码..

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放在选择列表中?

2 个答案:

答案 0 :(得分:2)

将您的find('all')来电更改为find('list')来电并在品牌型号上调用。

这将为您提供一个id =&gt;的关联数组所有displayField条记录中的Brand条。您可以通过在模型var $displayField = 'my_field';

中指定显示字段来显示字段

答案 1 :(得分:1)

在您的控制器中:

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

在您看来:

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

Cake会自动将$ brands视图var链接到brand_id字段选项列表。