仅查找在YIi2中具有相关表数据的行

时间:2017-09-19 03:54:42

标签: yii2

我有两张桌子:"用户"其中包含用户数据和"帖子"其中包含用户的帖子。每个用户都可以有很多帖子。

用户

  • ID
  • FULL_NAME

帖子

  • post_no
  • POST_CONTENT
  • id_user

我想要做的是隐藏没有帖子的用户,所以我尝试在搜索模型中加入表格:

public function search($params) {
    $query = Users::find->joinWith(['posts']);
}

但不幸的是,没有帖子的用户仍然显示。

1 个答案:

答案 0 :(得分:0)

使用mysql WHERE NOT NULL语法

$query = Users::find->joinWith(['posts'])->where(['not', ['posts.post_no' => null]]);

WHERE NOT NULL Yii2的替代语法:

->where(['IS NOT', 'posts.post_no', null]);

->where(['<>', 'posts.post_no', null]);

->having(['posts.post_no' => 'NOT NULL']);

请查看官方文档: http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail