2种型号的自动状态

时间:2019-08-10 13:23:53

标签: laravel laravel-5

我从两天前就陷入了我从未想过的问题。

为简单起见,我管理3种模型(摩托车,修订版,培训)。

如果正在对摩托车进行修订或培训,我必须在“摩托车”表上看到该摩托车不可用。

示例:

10/08/2019的摩托车00004培训。

enter image description here

在我的表单Motorbike中,摩托车unavailable的状态在000004中已更改。

enter image description here

好吧!

现在,如果我添加了摩托车Revision的修订版,我的问题就是000002的形式

enter image description here

状态也必须更改,我的表单为Motorbike。 这里的状态没有改变...

enter image description here

在我的控制器摩托车中,我有这个:

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>

我的数组仅用于模型吗?

1 个答案:

答案 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);