如何从cakephp中的may表中选择并显示特定字段?

时间:2012-05-02 03:16:10

标签: sql cakephp

我在products_controller.php中有这段代码:

<?php
    class ProductsController extends AppController{
        var $name = 'Products';
        var $helpers = array('Form');
        //var $scaffold;

        function index(){
            $this->Product->recursive = 1;
            $products = $this->Product->find('all');
            $this->set('products',$products);
            //pr($products);
        }

        function add(){
            if(!empty($this->data)){
                $this->Product->create();
                $this->Product->save($this->data);
                $this->redirect(array('action'=>'index'));
            }


            $categories = $this->Product->Category->find('list',array(
                'field'=>array('Category.categoryName')
            ));

            $this->set('categories',$categories);

            pr($categories);
        }
    }
?>

它在我的数据库中的实际作用是:

SELECT `Category`.`id` FROM `categories` AS `Category` WHERE 1 = 1

问题是,我不是要选择Category.id。我想选择Category.categoryName这是我数据库中的另一个字段,这样它就会自动填充add.ctp文件中的下拉列表,如下所示:

<h2>ADD</h2>

<?php echo $form->create('Product'); ?>
<?php
    echo $form->input('ProductName');
    echo $form->input('categories');
    echo $form->end('DONE');
?>

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

在您的类别模型中,使用类别名称设置displayField Name属性。

public $displayField = 'categoryName';