cakephp模型virtualFields无法通过包含
|
我有一个名为User的模型,它有一个名为full_name的 Virtual field.当我在find()查询中访问我的模型User时,我可以在我的虚拟字段上设置条件,没有这样的问题: $user = $this->User->find('first',array(
'recursive' => -1,'conditions' => array(
'User.full_name' => 'Bruce Thomas'
)
));
上面的查询将成功返回名为Bruce Thomas的用户的数据.但是当我尝试通过另一个模型使用我的模型用户时,问题就出现了,如下所示的Containable行为: $user = $this->MyOtherModel->find('first',array(
'contain' => array('User'),'conditions' => array(
'MyOtherModel.id' => $my_other_model_id
'User.full_name' => 'Bruce Thomas'
)
));
(上面的这个例子假设MyOtherModel与我的模型MyOtherModel有belongsTo关系) 上面的查询给出了以下错误:
有关我如何能做到这一点的任何帮助吗?谢谢 根据最新的CakePHP文档(针对v2及更高版本),这是虚拟字段的限制 – this is what it says:
$this->virtualFields['name'] = $this->Author->virtualFields['name']; 要么 $this->virtualFields += $this->Author->virtualFields; 更多详细信息:http://book.cakephp.org/2.0/en/models/virtual-fields.html – 如果您计划实施他们建议的选项(对我而言看起来很不错),您应该查看“虚拟字段和模型别名”部分以避免字段名称冲突(即,如果您有在两个模型中称为full_name的字段并尝试发出使用这两个模型的查询,您将得到一个模糊的字段SQL错误;使用别名可以避免这种情况. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
