我有以下关系:
TheEpisodeJob hasOne TheEpisode
TheEpisodeJob hasMany TheJobs
我使用此命令成功检索了数据库中所有字段(包括敏感信息)的所有TheEpisodesJobs
和TheSeriesEpisodes
:
$jobs = TheEpisodeJob::with('TheEpisode')->get();
我想限制仅针对此案例显示的TheEpisode
字段(public $hidden
无效)
假设我只需要title
中的description
和TheEpisode
字段。
我怎样才能做到这一点?
答案 0 :(得分:2)
正如@Buglinjo指出的那样,你可以在热切加载时确定关系的范围,但是,如果您要这样做只选择特定列,则必须在select中包含相关列,以便{{1} }知道将相关数据附加到哪个模型。
这可以给你你想要的东西:
Eloquent
此外,如果你想要摆脱$jobs = TheEpisodeJob::with(['TheEpisode' => function ($query) {
$query->select('jobID', 'title', 'description');
}])->get();
,你可以做类似的事情:
jobID
希望这有帮助!
答案 1 :(得分:0)
据我了解,您希望根据更多参数限制结果。如果我是对的,您应该添加更多查询,例如:
->where, ->orwhere, ->select, ->whereNull
Here是更多查询的链接。希望它会有所帮助)
我看到了更新,所以你需要
->pluck('title', 'description');
有关更多信息,请转到上面的链接
答案 2 :(得分:0)
你应该这样做:
$jobs = TheEpisodeJob::with(['TheEpisode' => function($q){
$q->get(['title', 'description']);
//or
$q->pluck('title', 'description');
}])->get();
注意:pluck
的数组不是Eloquent Object。