【问题标题】:Changing the condition of relations in Yii改变 Yii 中的关系条件
【发布时间】:2013-02-21 06:06:47
【问题描述】:

我遇到了一个小问题,需要您的帮助。我想连接两个表,但连接还有其他条件,而不仅仅是外键。我尝试设置条件参数,但它在我的查询中创建了一个 WHERE,这将导致我的主表将被过滤而不是连接的表。

'dokumentumok' => array(self::HAS_MANY, 'Fileuploader', 'foreign_id', 'joinType' => 'LEFT JOIN', 'condition' => "(dokumentumok.fileuploader_type='nyomtatvany') AND dokumentumok.fileuploader_deleted = 0"),

这将是条件 ->

'condition' => "(dokumentumok.fileuploader_type='nyomtatvany') AND dokumentumok.fileuploader_deleted = 0

【问题讨论】:

  • 另外,如果您经常这样做,请尝试使用范围。从长远来看,它们让生活更美好

标签: join yii conditional-statements has-many yii-relations


【解决方案1】:

condition 替换为on

'dokumentumok' => array(self::HAS_MANY, 'Fileuploader', 'foreign_id', 
  'joinType' => 'LEFT JOIN', 
  'on' => "(dokumentumok.fileuploader_type='nyomtatvany') 
  AND dokumentumok.fileuploader_deleted = 0"
)

另请参阅:http://www.yiiframework.com/forum/index.php/topic/10185-using-relations-and-conditions/

【讨论】:

  • 哦,我不知道关系有“开启”选项。我会试试看!谢谢你的帮助! ;)
【解决方案2】:

例如。

相关

'dokumentumok' => 数组(self::HAS_MANY, 'Fileuploader', 'foreign_id');

并获取模型

YouModelName::model()->with(array('dokumentumok' => array('on' => “(dokumentumok.fileuploader_type='nyomtatvany')和 dokumentumok.fileuploader_deleted = 0")))->findAll();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多