我从两天前就陷入了我从未想过的问题。
为简单起见,我管理3种模型(摩托车,修订版,培训)。
如果正在对摩托车进行修订或培训,我必须在“摩托车”表上看到该摩托车不可用。
示例:
有10/08/2019
的摩托车00004
培训。
在我的表单Motorbike
中,摩托车unavailable
的状态在000004
中已更改。
好吧!
现在,如果我添加了摩托车Revision
的修订版,我的问题就是000002
的形式
状态也必须更改,我的表单为Motorbike
。
这里的状态没有改变...
在我的控制器摩托车中,我有这个:
public function index()
{
$motorbikes = Motorbike::oldest()->paginate(5);
$bikeIdsDown = Revision::where('date_revision_start', "<=" , Carbon::now())->where('date_revision_end', ">=", Carbon::now())->pluck('fk_motorbike')->toArray();
$bikeIdsDown = Training::where('date_sitting', "<=" , Carbon::now())->pluck('fk_motorbike')->toArray();
return view('admin.motorbikes.index', compact('motorbikes', 'bikeIdsDown'))
->with('i', (request()->input('page',1) -1)*5);
}
但是,我认为我的问题出在我的index.blade
@foreach($motorbikes as $motorbike)
<tr>
<td>{{$motorbike->matriculation }} </td>
<td>{{$motorbike->number_motorbike}}</td>
<td> @if(in_array($motorbike->id, $bikeIdsDown))
UNAVAILABLE
@else
Available
@endif
</td>
我的数组仅用于模型吗?
答案 0 :(得分:1)
这很麻烦,因为您要覆盖相同的变量。
$bikeIdsDown = Revision::where('date_revision_start', "<=" , Carbon::now())->where('date_revision_end', ">=", Carbon::now())->pluck('fk_motorbike')->toArray();
$bikeIdsDown = Training::where('date_sitting', "<=" , Carbon::now())->pluck('fk_motorbike')->toArray();
两个查询响应都使用$ bikeIdsDown变量。
将$ bikeIdsDown变量更改为数组以分配新值。
$bikeIdsDown = Revision::where('date_revision_start', "<=" , Carbon::now())->where('date_revision_end', ">=", Carbon::now())->pluck('fk_motorbike')->toArray();
$bikeIdsDown[] = Training::where('date_sitting', "<=" , Carbon::now())->pluck('fk_motorbike')->toArray();
或创建一个新数组并像这样合并:
$revisionId = Revision::where('date_revision_start', "<=" , Carbon::now())->where('date_revision_end', ">=", Carbon::now())->pluck('fk_motorbike')->toArray();
$trainingId = Training::where('date_sitting', "<=" , Carbon::now())->pluck('fk_motorbike')->toArray();
$bikeIdsDown = array_merge($revisionId, $trainingId);