Laravel красноречив с данными отношений (Eager Loading) - PullRequest
0 голосов
/ 19 марта 2019

У меня есть две таблицы базы данных items и measurement_units - элемент имеет единицу измерения.

Теперь проблема в том, что я хочу выбрать определенный столбец из items и некоторыестолбец от measurement_unit.Я хочу использовать Готовность к загрузке

Например,

$items_with_mu = Item::with("measurement_unit")->select(["item_name", "item_stock"])->first();

При доступе к measure_unit.Возвращает ноль .Без функции выбора он возвращает данные (measure_unit).

$items_with_mu->measurement_unit;

Может кто-нибудь помочь мне и извините за мой английский.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Попробуйте это

Item::with(['measurement_unit' => function($q) { 
           $q->select('id','unit_column');   //specified measurement_unit column
      }])
     ->select('id','measurement_unit_id','item_name')
     ->get();

Если ваша версия laravel>> 5.5, вы можете написать в одну строку

Item::with('measurement_unit:id,unit_column')
     ->select('id','measurement_unit_id','item_name')
     ->get()
0 голосов
/ 19 марта 2019

Вы должны выбрать основной столбец основной модели, как показано ниже.

 items_with_mu = Item::with("measurement_unit")->select(["item_name", "item_stock", "primary_key"])->first();
...