Как решить, что кнопка удаления/редактирования со строковым первичным ключом не работает в Laravel?

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

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


person Aymane Lassfar    schedule 05.08.2020    source источник
comment
stackoverflow .com/questions/41366092/ решение для этого может сработать.   -  person Hirdesh Vishwdewa    schedule 05.08.2020


Ответы (1)


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

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

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

$request->cid 

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

person Ala Shariaty    schedule 05.08.2020
comment
Спасибо за ваш ответ, но я не могу этого сделать, потому что это будет прямое удаление, и моя функция просит пользователя подтвердить операцию удаления, затем он нажимает кнопку «ОК». Я добавил маршрут в свой вопрос !! - person Aymane Lassfar; 05.08.2020