displayField
与virtualFields
结合使用时遇到了一些问题。
我有文件 属于 2个不同的用户。
public $belongsTo = array(
'Creator' => array(
'className' => 'User',
'foreignKey' => 'creator_id',
),
'Editor' => array(
'className' => 'User',
'foreignKey' => 'editor_id',
)
);
用户模型中的virtualField
和displayField
。我使用以下代码:
public $virtualFields = array(
'full_name' => "CONCAT(first_name, ' ',last_name)"
);
public $displayField = 'full_name';
创建一个新文件工作正常,但如果我想查看我的所有文件,我会收到以下错误:
错误:SQLSTATE [23000]:完整性约束违规:1052字段列表中的“first_name”列不明确
我已经在这里读了一下: http://book.cakephp.org/2.0/en/models/virtual-fields.html 最后,virtualFields存在一些限制,因此我尝试将其添加到Controller:
$this->virtualFields += $this->Creator->virtualFields;
$this->virtualFields += $this->Editor->virtualFields;
但不知怎的,这并没有改变任何事情。
希望你能帮我解决这个小问题。
提前致谢!
答案 0 :(得分:0)
我猜你需要2个虚拟字段:
$this->File->virtualFields = array(
'Creator__full_name' => "CONCAT(Creator.first_name, ' ',Creator.last_name)",
'Editor__full_name' => "CONCAT(Editor.first_name, ' ',Editor.last_name)"
);