public function destroy($id)
{
$bar = Favourite::findOrFail($id);
$bar->where('bar_id', $id)->delete();
}
答案 0 :(得分:1)
您正在使用findOrFail
这意味着如果它获得了结果,它将引发异常,因为documentation表示您将获得此异常:
Illuminate \ Database \ Eloquent \ ModelNotFoundException
消息: 没有模型[App \ Models \ Favorite]
的查询结果
所以在控制器上执行此操作的正确方法应该是:
use Illuminate\Database\Eloquent\ModelNotFoundException; //Import exception.
try {
Favourite::destroy($id);
} catch (ModelNotFoundException $e) {
// Handle the error.
}
另一种方法是在模型上这样做:
public function destroy($id)
{
return Favourite::find($id)->delete();
}
但是你需要控制在找不到模型时会发生什么。
答案 1 :(得分:0)
有时候问题会出在销毁参数上 例如,我的问题是
public function destroy(Room $room)
{
//....
}
我的问题是我向该函数发送了数据,但不尊重参数中的数字 所以它引发了您所谈论的相同错误
所以我的解决方案是添加我想发送的参数
public function destroy(Request $request, $id)
{
//....
}