Модель Laravel не загружается данными при попытке удаления

#php #laravel #eloquent

#php #laravel #красноречивый

Вопрос:

У меня есть одна ссылка, как показано ниже:

     <a href='{{ route('transferDelete', $tran->transfer_id) }}'><i class='far fa-trash-alt'></i></a>
 

Он анализируется по следующему маршруту:

     Route::get('delete/{transfer_id}', [TransferController::class, 'destroy'])->name('transferDelete');
 

Но метод destroy в классе TransferController пуст. С другой стороны, второй параметр получает правильный идентификатор (как и ожидалось):

     public function destroy(Transfer $transfer, $bla)
    {
         //$transfer behaves like: $transfer = new Transfer;
         //$bla is a real id.
    }
 

Есть ли способ сделать так, чтобы $transfer указывал на transfer_id=$bla , без явного выполнения Transfer::find($bla)?

Ответ №1:

Вам необходимо сопоставить имя параметра маршрута с именем параметра типа метода контроллера, если вы хотите, чтобы выполнялась неявная привязка модели маршрута:

                        v
Route::get('delete/{transfer}', ...);

                                     v 
public function destroy(Transfer $transfer, $bla)