没有关于模型[App \ Models \ Favorite]的查询结果

时间:2017-03-08 15:30:10

标签: php laravel-5 laravel-eloquent

public function destroy($id)
{

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

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

2 个答案:

答案 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)
{
     //....
}