1
public function destroy($id)
{

    $bar = Favourite::findOrFail($id);
    $bar->where('bar_id', $id)->delete();

}
  • 当我尝试使用此查询删除值时,我收到此错误“没有模型 [App\Models\Favourite] 的查询结果。”。
  • -
4

2 回答 2

3

您正在使用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();
}

但是您需要控制找不到模型时会发生什么。

于 2017-03-08T15:41:06.950 回答
0

有时问题会出在销毁参数中,例如,我的问题是

public function destroy(Room $room)
{
      //....
}

我的问题是我将数据发送到函数但不尊重参数中的数字,所以它会抛出与你所说的相同的错误

所以我的解决方案是添加我想发送的参数

public function destroy(Request $request, $id)
{
     //....
}
于 2020-10-25T21:36:10.067 回答