Laravel - я пытаюсь удалить запись из базы данных, возвращает null (не работает)

Здравствуйте, друзья, пользователи StackOverflow!

Я пытаюсь удалить запись из базы данных с помощью функции уничтожения, но она возвращает нулевое значение. Я думаю, это как-то связано с тем, что я использую реляционную модель.

Club_info.blade.php:

@foreach ($speler as $s)
<tr>
  <td>{{$s->speler_naam}} 
    <a href = "{!! url()->current() !!}/delete/{{$s->id}}">×</a>
 </td>
</tr>
@endforeach

Файл маршрутов:

Route::get('/view/{naam}/delete/{id}', 'VoetbalController@destroy');

Контроллер:

public function destroy($id)
{
    $speler = Speler::where('id', $id)->delete();
    $speler->delete();
}

Модель:

public function speler()
{
    return $this->belongsTo('App\Speler', 'naam', 'club_naam');
}
$speler = Speler::where('id', $id)->delete(); этот фрагмент уже удаляет запись, тогда нет необходимости вызывать $speler->delete();
K Arun Singh 12.10.2018 11:05

Не по теме, старайтесь избегать использования запроса GET для удаления. Возможно, браузеры предварительно загружают этот URL-адрес, возможно, даже при наведении курсора. Не лучший вариант, когда записи исчезают без каких-либо действий пользователя. По той же причине Laravel изменил запрос выхода из системы на POST.

Alex Bouma 12.10.2018 11:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
2
413
2

Ответы 2

Вы передаете 2 переменные naam и id.

Таким образом, $id в вашей функции destroy автоматически принимает значение вашего первого параметра {naam}. Вам нужно добавить 2 параметра в вашу функцию destroy в контроллере.

И вы дважды назвали метод delete().

Измените функцию вашего контроллера на

public function destroy($naam, $id)
{
   $speler = Speler::where('id', $id)->delete();
}

Если в вашей маршрутизации нет магической логики, значит, в вашей функции уничтожения отсутствует переменная $naam.

Вы удаляете удаление, поэтому второе удаление не требуется.

public function destroy($naam, $id)
{
    Speler::where('id', '=', $id)->delete();
}

Другие вопросы по теме