#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)