Не удается удалить из таблицы SQLite в Laravel - PullRequest
2 голосов
/ 28 июня 2019

Я делаю «домашнее задание» для собеседования.Хотя у меня есть опыт веб-разработки, это не моя сильная сторона.Я пытаюсь удалить строку в таблице SQLite с помощью кнопки HTML DELETE.Я использую фреймворк Laravel-php.

Я пробовал разные решения в Google и переполнении стека, но ни одно из них не решило проблему.Я смоделировал свой подход после этого видео Laracasts

Ссылка на мой код

Кажется, лезвие передает правильную информацию ($ id от $contact-> id) и контроллер, кажется, получает.Но данный контакт, связанный с идентификатором, не удаляется.

FROM BLADE:

<div class="col-md-6">
    <table class="table table-striped table-hover">
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Address</th>
        </tr>
        @foreach($contacts as $contact)
            <tr>
                <td> {{$contact->f_name}} </td>
                <td> {{$contact->l_name}} </td>
                <td> {{$contact->address}} </td>
                <td>
                    <form method="POST" action="/delete/{{ $contact->id }}">
                        @method('DELETE')
                        @csrf

                        <div class="field">
                            <div class="control">
                                <button type="submit" class="button">Delete Contact</button>
                            </div>
                        </div>

                    </form>
                </td>
            </tr>
        @endforeach
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</div>

FROM CONTROLLER:

public function delete($id) {

  Contact::find($id)->delete();

  return view('index');

}

FROM ROUTE:

Route::delete('/delete', [
  'uses'=>'ContactController@delete',
  'as'=>'contacts.delete'
]);

1 Ответ

0 голосов
/ 28 июня 2019

у вас нет идентификатора в вашем методе удаления, вам нужно включить его в URL, как

Route::delete('/delete/{id}', [
  'uses'=>'ContactController@delete',
  'as'=>'contacts.delete'
]);

в этом случае вам не нужно менять метод удаления.

вы также можете извлечь идентификатор из объекта запроса, не изменяя маршрут удаления, в этом случае вам нужно включить идентификатор в качестве скрытого ввода в вашем представлении, и ваш метод удаления будет выглядеть следующим образом

public function delete(Request $request) {

  Contact::find($request->id)->delete();

  return view('index');

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...