[英]How to use join in Laravel Eloquent
有一個問題,不知道要解決它,我有三個表
以及以上三個表之間的關系
category_type has many categories
和
category has many post
現在我想在數據庫中查詢以下數據
我想獲得所有category_type
為World News
帖子
1個帖子模型
<?php namespace App; use Carbon\\Carbon; use Illuminate\\Database\\Eloquent\\Model; class Post extends Model { public function tags() { return $this->belongsToMany('App\\Tag','post_tags')->withTimestamps(); } public function categories() { return $this->belongsToMany('App\\Category','category_posts'); } public function getRouteKeyName() { return 'slug'; } public function getCreatedAtAttribute($value) { return Carbon::parse($value)->diffForHumans(); } public function author() { return $this->belongsTo(Author::class); } }
<?php namespace App; use Illuminate\\Database\\Eloquent\\Model; class Category extends Model { public function type(){ return $this->belongsTo(Type::class); } public function posts() { return $this->belongsToMany('App\\Post','category_posts'); } }
3- Category_Type模型
<?php namespace App; use Illuminate\\Database\\Eloquent\\Model; class Type extends Model { public function categories(){ return $this->hasMany(Category::class); } }
有人知道嗎?
您可以通過在帖子模型中的定義關系上使用whereHas
過濾器來獲取所有帖子,如下所示:
$type = 'World News';
$posts = Post::whereHas('categories.type', function ($query) use($type) {
$query->where('name', '=', $type);
})->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.