Laravel: проверьте, существует ли запись перед вставкой

У меня есть две таблицы: таблица assignments (columns asset_id , Staff Name , asset_id , department , date , status ) и таблица assets (столбцы asset_id , tag_name , serial_number , model_number , color ). Столбцы таблицы активов связаны с таблицей присвоений . Я хочу выполнить вставку в таблицу назначений, но перед вставкой, я хочу проверить, существует ли asset_id в таблице назначений, и если это status = «Активный», тогда вставка должна вызывать ошибку / не должна произойти.

AssignmentsController

 class AssignmentController extends Controller { public function assignment(){ $assignments = Assignment::all(); return view('assignment/index', ['assignments' => $assignments]); } public function add(Request $request){ $this->validate($request, [ 'assignment_id' => '', 'staff_name' => 'required', 'asset_id' => 'required', 'department' => 'required', 'date' => 'required', 'status' => 'required' ]); $assignments = new Assignment; $assignments ->assignment_id = $request->input('assignment_id'); $assignments ->staff_id = $request->input('staff_id'); $assignments ->asset_id = $request->input('asset_id'); $assignments ->department_id = $request->input('department_id'); $assignments ->date = $request->input('date'); $assignments ->status = $request->input('status'); $count = Assignment::where('status', '=' ,'Active' )-> where('asset_id', '=' ,$assignments->asset_id)-> count(); if($count) { abort(405, 'Trying to assign an already assigned asset'); } $assignments ->save(); return redirect('/assignment/index') ->with('info', 'New Assignment Saved Successfully!'); } - class AssignmentController extends Controller { public function assignment(){ $assignments = Assignment::all(); return view('assignment/index', ['assignments' => $assignments]); } public function add(Request $request){ $this->validate($request, [ 'assignment_id' => '', 'staff_name' => 'required', 'asset_id' => 'required', 'department' => 'required', 'date' => 'required', 'status' => 'required' ]); $assignments = new Assignment; $assignments ->assignment_id = $request->input('assignment_id'); $assignments ->staff_id = $request->input('staff_id'); $assignments ->asset_id = $request->input('asset_id'); $assignments ->department_id = $request->input('department_id'); $assignments ->date = $request->input('date'); $assignments ->status = $request->input('status'); $count = Assignment::where('status', '=' ,'Active' )-> where('asset_id', '=' ,$assignments->asset_id)-> count(); if($count) { abort(405, 'Trying to assign an already assigned asset'); } $assignments ->save(); return redirect('/assignment/index') ->with('info', 'New Assignment Saved Successfully!'); } 

Assginment.php

 class Assignment extends Model { protected $primaryKey = 'assignment_id'; public function asset() { return $this->belongsTo('App\Asset', 'asset_id'); } } 

Вышеуказанная переменная и оператор if в AssignmentsController всегда выдает ошибку в if statement ли она истиной или нет, а вставка не происходит, но когда весь оператор очищается, происходит вставка.

 $count = Assignment::where('status', '=' ,'Active' )-> where('asset_id', '=' ,$assignments->asset_id)-> count(); if($count) { abort(405, 'Trying to assign an already assigned asset'); } - $count = Assignment::where('status', '=' ,'Active' )-> where('asset_id', '=' ,$assignments->asset_id)-> count(); if($count) { abort(405, 'Trying to assign an already assigned asset'); } 

Поэтому я хочу, чтобы проверить, существует ли уже установленная запись с условиями, как если asset_id существовала asset_id тогда проверьте ее status если он = «Активен», а затем выдает ошибку, но если нет, то происходит вставка. Пожалуйста, помогите, если вы это понимаете. Заранее спасибо.