我想急切加载下面这段代码。
public function index()
{
$plateContainers = PlateContainer::with('equipmentStatusCode','storageLocation','plateContainerType')->paginate(10)->toArray();
return response()->success($plateContainers);
}
调用索引方法。
public function slotsCount()
{
return $this->containerSlots()
->where('occupied', false)
->join('plate_containers','container_slots.plate_container_id', '=', 'plate_containers.id')
->select('plate_containers.name AS Container', DB::raw('count(container_slots.slot) as no_of_slots'))
->groupBy('plate_container_id');
}
public function getSlotsCountAttribute()
{
$this->load('slotsCount');
$related = $this->getRelation('slotsCount');
return $related;
}
最好的方法是什么?
我以为我可能会这样做。
PlateContainer模型
div {
-webkit-animation-fill-mode: forwards;
animation-duration: 2s;
animation-name: a;
background-color: #a00;
display: inline-block;
padding: 50px;
}
div:hover {
-webkit-animation-fill-mode: backwards;
animation-duration: 2s;
animation-name: a;
animation-direction: reverse;
}
@keyframes a {
0% {
padding: 50px;
}
100% {
padding: 100px 200px;
}
}
但是这会返回
“message”:“方法addEagerConstraints不存在。”,
感谢您的时间。
答案 0 :(得分:0)
我的猜测是,当你这样做时,你正在调用错误的关系:
$this->load('slotsCount');
' slotsCount()'只是一种没有“addEagerConstraints()'方法
真正的关系是' containerSlots'正如我从代码中猜到的那样。
在类似情况下进行一些测试后,我认为溶剂可能是:
public function getSlotsCountAttribute()
{
$this->load('containerSlots');
return $this->slotsCount();
}
所以调用' getSlotsCountAttribute()',第一个eagers加载关系,然后返回计数。