我有两个数据库表items
和measurement_units
- item有测量单位。
现在的问题是我想从items
和measurement_unit
的一些列中选择一个特定的列。我想使用Eager加载
EG
$items_with_mu = Item::with("measurement_unit")->select(["item_name", "item_stock"])->first();
访问measurement_unit时。它返回null。没有select函数,它返回数据(measurement_unit)。
$items_with_mu->measurement_unit;
任何人都可以帮助我,对不起我的英语。
试试这个
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()
您必须选择主模型的主列,如下所示。
items_with_mu = Item::with("measurement_unit")->select(["item_name", "item_stock", "primary_key"])->first();