Eloquent の with で取得するカラムを指定したかったのですが、けっこーハマっので残します。
HogeDataGroupModel
// 項目
protected $fillable = [
'name',
'group_type',
'order'
];
// 関連
public function hogeDatas()
{
return $this->hasMany('App\Models\HogeDataModel');
}
HogeDataModel
// 項目
protected $fillable = [
'hoge_data_id',
'value',
'start_at',
'end_at'
];
// 関連
public function hogeDataGroup()
{
return $this->belongsTo('Models\HogeDataGroupModel');
}
上記のように、
HogeDataGroup : HogeData = 1 : 多
のケースで考えると、
HogeDataModel の value のみを 抽出する場合、valueだけでなく、FKも必要です。←これにハマった。
HogeController
HogeDataGroupModel::where('group_type', 1)
->with(['hogeDatas' => function ($q) {
$q->select('value', 'hoge_data_id'); // ← hoge_data_id が必要。
}])