Как уже упоминалось в комментариях, ошибка, которую вы получаете, вероятно, связана с тем, что в базе данных не существует категории для данного идентификатора.
Затем, когда вы пытаетесь найти категорию для этого идентификатора:
$category = Category::find($id);
Значение переменной $category
равно null
. Поэтому вы получаете сообщение об ошибке при попытке вызвать метод delete()
для null
. Под капотом это было бы так же, как делать следующее:
null->delete();
Что, не работает.
Вы можете проверить значение $category
, прежде чем пытаться удалить его. Или вы можете использовать запрос для удаления всех записей, соответствующих заданному условию, в вашем случае id = $id
. Таким образом:
public function destroy($id)
{
Category::where('id', $id)->delete();
return redirect('/')->back();
}
См. Удаление моделей по запросу в Eloquent docs для получения подробной информации о том, как это работает.