cakephp控制数据库中的下拉人口

时间:2014-08-22 02:19:30

标签: php cakephp drop-down-menu cakephp-model

我试图填充cakephp中的下拉列表/选择标记,幸运的是我能够使用来自我的数据库的值填充它, 但是它显示ALL。如何将人口限制为特定ID?

在这里说清楚我想要实现的目标:

苹果:
形式开始
下拉列表 - 仅包含与数据库中的苹果相关联的值 按钮
表格结束

目前看来是这样的

苹果:
形式开始
下拉列表 - 包含来自DB的所有水果值 按钮
表格结束

这是我当前的代码tnx非常感谢任何帮助/建议

控制器:

$fruits = $this->Model1->Model2->find('list', 
array('fields' => 
array('id', 
'fruit_name',
//'conditions' => array(''=>'')
)));
$this->set('fruitsList', $fruits);

查看:

echo $this->Form->input('Model1.salad_fruits_id', 
array('type' => 'select', 
'options' => $fruitsList,
));

1 个答案:

答案 0 :(得分:0)

如果模型之间的模型之间存在关联,那将更容易。只需为第二个模型添加条件。

//if you don't have association between models
        $this->Model1->bindModel(array(
            'belongsTo' => array( //example binding
                'Model2' => array(
                    'className' => 'Model2',
                    'foreignKey' => 'model2_id',
                )
            )
        ));
        $fruits = $this->Model1->find('list', array(
            'conditions' => array(
                'Model2.name' => 'apple'
            ), 
            'fields' => array(
                'id','fruit_name',
            )
        ));