我有一个典型的hasMany方法:
public function earmarks() {
return $this->hasMany('App\Earmark');
}
但是当我使用->with('earmarks')
检索它们时,如何为此关系添加连接和其他一些条件?我想补充一下:
->join('locations', 'locations.id', '=', 'earmarks.location')
->select('earmarks.*', 'locations.location AS em_location')
->orderBy('date', 'asc');
答案 0 :(得分:3)
好的,我想在我的with()
子句中需要一个闭包,就像这样:
$updated_laptops = Laptop::with([
'earmarks' => function($q) {
$q
->join('locations', 'locations.id', '=', 'earmarks.location')
->select('earmarks.*', 'locations.location AS em_location')
->orderBy('date', 'asc');
}
])->addJoins()->selectListCols()->find($request->IDs)->keyBy('id');
答案 1 :(得分:1)
在位置模型中定义hasMany方法时(例如 \ App \ Models \ Location.php )
public function earmarks() {
return $this->hasMany('App\Earmark');
}
您可以在Controller中返回Location对象(例如 LocationController.php ):
public function show($id)
{
$location = \App\Models\Location::find($id);
return view('locations.show)
->with('location', $location);
}
然后在视图中(例如 locations \ show.blade.php ),您可以检索如下数据:
@foreach ($location->earmarks->sortBy('date') as $earmark )
<p>{{ $earmark->attribute_name }}</p>
@endforeach
答案 2 :(得分:0)
这对我有用
$('html, body').animate({ scrollTop: $(yourElement).offset().top - 20}, 800);
它可以是Labtop模型中的一个属性,并且可以像这样在Labtop json对象中可序列化:
401 No Ticket