【问题标题】:Yii2, ActiveQuery search model if there are existing relation modelsYii2,ActiveQuery 搜索模型,如果有现有的关系模型
【发布时间】:2015-04-24 09:03:50
【问题描述】:

有 2 个 Active Record 模型 Questions(Q) 和 Answers(A)。

为简单起见,我省略了无关紧要的属性:

  • :question_id
  • A:answer_id、question_id

Q有很多A,由question_id链接

public function getAnswers()
{
    return $this->hasMany(Answer::className(), ['question_id' => 'question_id']);
}

如何创建查找查询以仅查找具有至少一个相关 A 模型的 Q 模型?

此查询需要在基本 Q 搜索模型中的 ActiveDataProvider 中。

【问题讨论】:

    标签: php activerecord yii2


    【解决方案1】:

    使用innerJoinWith (doc):

    Q::find()->innerJoinWith(['answers'])->all();
    

    【讨论】:

    • 谢谢@vitalik_74,它有效。对于 ActiveDataProvider 查询必须不带->all()
    猜你喜欢
    • 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
    相关资源
    最近更新 更多