3 回答

TA贡献1836条经验 获得超4个赞
你可以这样做。获取隐藏表中未列出的所有帖子:
$posts = Post::find()
->andFilterWhere(['not in',
'post.id',
HiddenPost::find()
->select(['hidden_post.post_id'])
->all();
无论如何,最好从原始 SQL 语句开始。编写满足您的结果的语句并将其传输到 ActiveRecord 查询。

TA贡献1828条经验 获得超6个赞
使用 yii2 拥有的函数而不是在模型中添加查询(例如在模型中使用选择查询)可能是一种很好的做法。
相反,您可以在 yii2 中使用 ORM 函数,这些函数已经由 gii 内部函数完成,以使 u=您的工作更轻松。
添加 * @property YourModel $hidden_post 并在此模型中添加您的 post_id,例如 ( * @property integer $post_id) 以创建关系。
public function getHiddenPosts($hidden_post) {
return $this->find()->joinWith('hidden_post')
->where(['hidden_post' => $hidden_post])
->all();
}

TA贡献2065条经验 获得超14个赞
可以使用内部连接检索帖子项目
$res = Post::find()
->select('post.*')
->innerJoin('hdn_post', '`post`.`id` = `hdn_post`.`post_id`')
->all();
- 3 回答
- 0 关注
- 148 浏览
添加回答
举报