Как разрешить кнопку удаления / редактирования со строковым первичным ключом, не работающим в Laravel? - PullRequest
0 голосов
/ 05 августа 2020

ПРИМЕЧАНИЕ. Я использую одну и ту же функцию удаления / редактирования для всех таблиц в моем проекте.

function confirmDelete(link, id) {
    ...
    .then((willDelete) => {
    if (willDelete) {
      window.location.href = "/del-"+link+id;
      swal("Supprimé avec succès!", {
      icon: "success",
    });
    ...
  }

Функция удаления в PersonnelController:

public function destroy(Request $request, $cin)
{
    $personnel = Personnel::findOrFail($cin);
    $personnel -> delete();
    redirect('/personnel');
}

Маршрут:

Route::get('/del-pers/{cin}', 'PersonnelController@destroy')->name('personnel.destroy');

кнопка редактирования показывает мне эту ошибку на странице редактирования:

Property [cin] does not exist on this collection instance.

Кнопка Show работает правильно и показывает мне запись, но кнопка удаления не работает:

<a class="btn btn-sm bu5" href="/detail-pers/{{ $pers->cin }}"><i class="fa fa-eye"></i></a>
<a class="btn btn-sm bu5" href="/edit-pers/{{ $pers->cin }}"><i class="fa fa-edit "></i></a>
<a class="btn btn-sm bu5" onclick="confirmDelete('pers/', {{$pers->cin}})"><i class="fa fa-trash-alt"></i></a>
      

Проблема кнопки удаления с красным вектором

CIN - это первичный ключ

например: BB1194

1 Ответ

0 голосов
/ 05 августа 2020

Если вы предоставите нам свои маршруты, мы сможем дать вам лучший ответ. В любом случае, если вы определите свой маршрут удаления, как показано ниже

Route::get('del-pers/{id}' , ....)

, он должен работать правильно. В качестве альтернативы вы можете отправить свой запрос с параметрами запроса, такими как 'del-pers? Cid = 55', и получить его через

$request->cid 

внутри вашего контроллера.

...