public function destroy($id)
{
$bar = Favourite::findOrFail($id);
$bar->where('bar_id', $id)->delete();
}
- 当我尝试使用此查询删除值时,我收到此错误“没有模型 [App\Models\Favourite] 的查询结果。”。 -
public function destroy($id)
{
$bar = Favourite::findOrFail($id);
$bar->where('bar_id', $id)->delete();
}
您正在使用findOrFail
它意味着如果它没有得到结果,它将引发异常,因为文档说您会得到这个异常:
照亮\数据库\雄辩\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();
}
但是您需要控制找不到模型时会发生什么。
有时问题会出在销毁参数中,例如,我的问题是
public function destroy(Room $room)
{
//....
}
我的问题是我将数据发送到函数但不尊重参数中的数字,所以它会抛出与你所说的相同的错误
所以我的解决方案是添加我想发送的参数
public function destroy(Request $request, $id)
{
//....
}