В документации все просто расписано.
Есть модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the phone record associated with the user.
*/
public function phone()
{
return $this->hasOne('App\Phone');
}
}
Выбрали вы пользователей:
$users = (new User())->newQuery()->get();
Если вы сделаете так:
foreach($users as $user){
$phone = $user->phone;
}
То при каждом запросе к отношению - будет отдельный запрос.
Вместо этого можно сделать либо:
$users = (new User())->newQuery()->with('phone')->get();
либо уже после получения:
$users->load('phone');
В первом случае при наличии 10 записей с пользователями произойдет 11 запросов, во втором и третьем всего 2 запроса.