cakephp模型virtualFields无法通过包含

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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的字段并尝试发出使用这两个模型的查询,您将得到一个模糊的字段@L_360_17@错误;使用别名可以避免这种情况.

脚本宝典总结

以上是脚本宝典为你收集整理的cakephp模型virtualFields无法通过包含全部内容,希望文章能够帮你解决cakephp模型virtualFields无法通过包含所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。