我有一個列表和用戶之間的多對多關係。 這是List型號:Laravel 5 - 雄辯:更簡單的方法來過濾多對多的關係
class ListModel extends Model
{
protected $table = "lists";
public function users()
{
return $this->belongsToMany('App\Models\User', 'list_user', 'list_id', 'user_id')->withTimestamps();
}
}
這是用戶模式:
class User extends Authenticatable
{
public function lists()
{
return $this->hasMany('App\Models\ListModel');
}
}
在列表頁,我需要把所有屬於登錄用戶的列表。我發現的唯一解決方案是:
$user = \Auth::user()->id;
$all_lists = ListModel::whereHas('users', function ($query) use ($user) {
$query->where('user_id', $user);
})->active()->get();
有沒有更簡單的方法來實現相同的結果?
發現這個有用https://laracasts.com/discuss/channels/laravel/how-to-eager-load-a-relation-on-authuser – Gayan