Laravel雄辩的关系数据(Eager Loading)

问题描述 投票:0回答:2

我有两个数据库表itemsmeasurement_units - item有测量单位。

现在的问题是我想从itemsmeasurement_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;

任何人都可以帮助我,对不起我的英语。

laravel eloquent eager-loading
2个回答
1
投票

试试这个

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
投票

您必须选择主模型的主列,如下所示。

 items_with_mu = Item::with("measurement_unit")->select(["item_name", "item_stock", "primary_key"])->first();
© www.soinside.com 2019 - 2024. All rights reserved.