Yii2模型以排除相关记录

问题描述 投票:0回答:2

我有两个相关的表,postshidden_posts,其中postsid对应于hidden_postspost_id

在我的posts模型中,如果帖子应该被隐藏,我具有此关系以返回记录:

  public function getHiddenPosts()
    {
        return $this->hasOne(HiddenPost::className(), ['post_id' => 'id']);
    }

现在,我需要返回所有未隐藏的帖子。所以我正在寻找这个伪代码的等效物:

return $this->hasNone(HiddenPost::className(), ['post_id' => 'id'])->all();

这是在说,“告诉我所有不在hidden_​​posts表中的帖子”。

那么这是使用外部联接查询还是有一条语句找不到我在一行中执行此操作?

php mysql yii2
2个回答
0
投票

您可以使用内部联接检索过帐项目

$posts = Post::find()
->select('post.*')
->innerJoin('hidden_post', '`post`.`id` = `hidden_post`.`post_id`')
->all();

0
投票

可以使用内部联接检索帖子项目

$res = Post::find()
->select('post.*')
->innerJoin('hdn_post', '`post`.`id` = `hdn_post`.`post_id`')
->all();
© www.soinside.com 2019 - 2024. All rights reserved.