0

I have this code in my 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);
        }
    }
?>

what it actually does in my database is this:

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

The thing is, I am not trying to select Category.id. I want to select Category.categoryName which is another field in my database so that it will automatically populate a dropdown list in my add.ctp file which goes like this:

<h2>ADD</h2>

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

any help would be highly appreciated.

4

1 に答える 1

0

カテゴリモデルで、displayFieldNameプロパティにCategoryNameを設定します。

public $displayField = 'categoryName';

于 2012-05-02T03:20:20.860 に答える