CakePHP在下拉列表中显示除id之外的其他字段

时间:2011-06-14 10:21:13

标签: cakephp view

我有两张桌子:用户和公司:

class Firm extends AppModel {
    var $name = 'Firm';
    var $hasAndBelongsToMany = 'User';
}

class User extends  AppModel {
    var $name = 'User';
    var $hasMany ='Post';
    var $hasAndBelongsToMany = 'Firm';
}

我使用scaffold var来显示所有保存/查看/编辑等方法。我重写了这样的add方法:

function add(){
    if (!empty($this->data)) {
        $this->User->create();
        $this->User->save($this->data);
        $this->redirect(array('action'=>'index'), null, true);
    }
    $firms = $this->User->Firm->find('list');
    $this->set('firms', $firms);
}

一切都很好,但是当我使用用户/添加时,我得到了ID为“1”,“2”等的下拉列表。 我想显示公司名称,而不是ID。怎么做?

1 个答案:

答案 0 :(得分:6)

你需要在模型中设置'displayField'属性,这就是Cake在各种内置函数中使用的属性,包括find('list');`这默认为'name'或'title'数据库中的字段,但我猜你在公司数据库中没有这些字段。

在您的Firms模型中更改它:

var $displayField = 'firm_name';