Laravel 8.63.0 版本带有一个新的 Eloquent 查询构建器方法 whereBelongsTo()。这允许你从你的查询中删除 BelongsTo 外键名称,并使用关联方法替代(该方法会根据类名自动确定关联与外键,也可以添加第二个参数手动关联)。// 以前: $query->where('author_id', $author->id) // 现在: $query->whereBelongsTo...
如果要统计其它关联模型结果数量字段,可以依次类推,对应字段都是 {relation}_count 结构。 注:实际开发中为了提高查询性能,我们往往是在 posts 表中冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。 此外,你还可以通过数组传递多个关联关系一次统计...
如果想要只计算关联结果的统计数量而不需要真实加载它们,可以使用 withCount 方法,它将放在结果模型的 {relation}_count 列 例如,每个用户发布过多少篇文章 //关联模型计数$counts=User::withCount('blogs')->get();dd($counts); withCount()是为每一个数据新增一个{relation}_coun列,如图: 预加载 当以属性方式...
$posts = Post::whereDoesntHave('comments', function ($query) { $query->where('content', 'like', 'foo%'); })->get(); 统计关联模型如果你想要在不加载关联关系的情况下统计关联结果数目,可以使用 withCount 方法,该方法会放置一个 {relation}_count 字段到结果模型。例如:...
$query->where('content', 'like', 'foo%'); })->get(); 统计关联结果 如果你希望统计关联的结果而不实际的加载它们,你可以使用withCount方法,这将在你的结果模型中添加{relation}_count列。比如: $posts = App\Post::withCount('comments')->get(); ...
如果要统计其它关联模型结果数量字段,可以依次类推,对应字段都是 {relation}_count 结构。注:实际开发中为了提高查询性能,我们往往是在 posts 表中冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。
use Illuminate\Database\Eloquent\Builder;$posts = Post::withCount(['votes', 'comments' => function (Builder $query) { $query->where('content', 'like', 'code%');}])->get();echo $posts[0]->votes_count;echo $posts[0]->comments_count;...
$posts = Post::whereDoesntHave('comments', function ($query) { $query->where('content', 'like', 'foo%'); })->get();Copy計算關聯模型如果你想要從關聯中計算結果的數字,而不載入它們。你可以使用 withCount 方法,該方法會在你的結果模型上放置 {relation}_count 欄位。例如:...
如果你希望统计关联的结果而不实际的加载它们,你可以使用withCount方法,这将在你的结果模型中添加{relation}_count列。比如: $posts = AppPost::withCount("comments")->get();foreach ($posts as $post) { echo $post->comments_count;} 你也可以同时检索多个关联的统计,以及添加查询约束: ...
use Illuminate\Database\Eloquent\Builder; $posts = App\Post::whereDoesntHave('comments.author', function (Builder $query) { $query->where('banned', 1); })->get();关联模型计数如果想要只计算关联结果的统计数量而不需要真实加载它们,可以使用 withCount 方法,它将放在结果模型的 {relation}_count ...