【问题标题】:How do I get the first and last name of a person in a select box from an associated table in cakePHP 2.4?如何从 cakePHP 2.4 的关联表中的选择框中获取一个人的名字和姓氏?
【发布时间】:2014-03-15 05:26:52
【问题描述】:

假设我有两个表,人员和帖子。人们在其中有一个 id、first_name 和 last_name。 posts 表有一个 id、title、body 和 person_id。 Post 属于 Person 且 Person hasMany Posts。然后我烘焙模式。添加帖子的默认表单将有一个选择框,用于从数据库中的人员列表中选择拥有该帖子的人。但是,帖子中只显示此人的名字。您如何让名字和姓氏显示在该选择框中?

人物模型:

class Person extends AppModel { 
    public $displayField = 'first_name';
    public $hasMany = array( 'Post' );
...

添加的帖子控制器将包括以下内容:

$people = $this->Post->Person->find('list');
$this->set(compact('people'));

Post 视图将具有以下内容:

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

视图会自动检测关联并填充选择框,但我必须做什么才能让 first_name 和 last_name 显示在选择中?

(这也适用于其他情况,您希望在选择框中显示多个数据库列,但我选择这个作为示例是因为它使问题更容易提出。)

【问题讨论】:

    标签: cakephp cakephp-2.4


    【解决方案1】:

    Person 模型中,使用

    public $displayField = 'full_name';
    
    public $virtualFields = array(
        'full_name' => 'CONCAT(Person.first_name, " ", Person.last_name)'
    );
    

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 2011-05-17
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 2013-01-20
      相关资源
      最近更新 更多