سلام دوستان. در حالت عادی کد زیر همهی اطلاعات یک رابطه رو لود میکنه:
$posts = User::with('comments')->get();
اما اگه بخوایم اون رابطه رو فیلتر کنیم (مثلا ستونهای خاصی رو انتخاب کنیم) میتونیم از روشهای زیر استفاده کنیم.
روش اول: با Eager Loading
$users = User::with(['comments' => function($query) { $query->select('id', 'user_id', 'text'); }])->get();
روش دوم: با Lazy Loading
$user = User::find(1); $comments = $user->comments()->select('id', 'user_id', 'text')->get();
برای آشنایی با Eager Loading و Lazy Loading میتونید سوال ۳۹ و ۴۰ سوالات مصاحبه لاراول رو بخونید:
منبع:
