我有以下雄辩的模型:
用户id
邮政编码
评论| id |发布| id |用户| id
使用eloquent,如何获取特定用户尚未发表评论的所有帖子?
到目前为止,我试过:
在模范岗位:
public function noCommentOf(User $user) {
$this->hasNot('App\Comment')->commentOf($user);
}
在模型注释中:
public function commentOf($query, User $user) {
return $query->where('user_id', '=', $user->id);
}
我想:
$user->post()->leftJoin('comments', 'posts.id', '=', 'comments.post_id')->whereNull('comments.id');
后模型
public function comments()
{
return $this->hasMany(Comment::class)
}
然后得到帖子
$posts = Post:: whereDoesntHave('comments', function ($query) use ($userId) {
$query->where('user_id', $userId);
});
获得没有评论的帖子
$posts = Post::has('comments', '=', 0)->get();
我的方法是通过查询带有whereDoesnthave
关系的Post
模型。在控制器中:
public function getPostsWithoutCommenter(){
$userId = 1; // Could be `$user`, `use($user)` and `$user->id`.
$posts = \App\Post::whereDoesntHave("comments", function($subQuery) use($userId){
$subQuery->where("user_id", "=", $userId);
})->get();
}
这将假设注释
在Post
模型上定义为:
public function comments(){
return $this->hasMany(Comment::class);
}
基本上,如果注释
与检查$userId
的关系返回一个Collection
,则将从结果集中忽略它。
我试着补充: 并用调用,但响应为空。
嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!
我使用的是Laravel7.0和MySQL 5.7。 我使用Eloquent从数据库中获取记录,当数据库包含大量数据时,响应时间变得非常慢。 以下是几个例子:
问题内容: 我想返回所有类别的所有项目。 此查询我现在返回的类别为1或2或3的项目。我需要返回的类别为1和2以及3的项目。 我怎样才能做到这一点? 问题答案: 试试这个: 使用查询将仅返回具有所有列出类别的项目。
我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?
我有一个搜索功能在我的应用程序,将搜索一个“广泛的”搜索词的几个列或一个定义的列作为用户选择。我还有一个outser语句,用于搜索公司id(多租户应用程序)和分配的subcompany_id,它们都属于用户。 当我搜索时,我得到了所有的结果,它没有使用与用户相关的company_id或subcompany_id。我发现它在语句括号内使用subcompany_id,而不是在括号外。 此代码返回以下查