没有模型 [App\Models\Favourite] 的查询结果
No query results for model [App\Models\Favourite]
public function destroy($id)
{
$bar = Favourite::findOrFail($id);
$bar->where('bar_id', $id)->delete();
}
- 我在尝试使用此查询删除值时收到此错误 'No query results for model [App\Models\Favourite].'。
-
你正在使用 findOrFail
这意味着如果它没有得到结果它会抛出一个异常,因为 documentation 说你会得到这个异常:
Illuminate\Database\Eloquent\ModelNotFoundException
Message:
No query results for model [App\Models\Favourite]
所以在控制器上正确的做法应该是:
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)
{
//....
}
public function destroy($id)
{
$bar = Favourite::findOrFail($id);
$bar->where('bar_id', $id)->delete();
}
- 我在尝试使用此查询删除值时收到此错误 'No query results for model [App\Models\Favourite].'。 -
你正在使用 findOrFail
这意味着如果它没有得到结果它会抛出一个异常,因为 documentation 说你会得到这个异常:
Illuminate\Database\Eloquent\ModelNotFoundException
Message: No query results for model [App\Models\Favourite]
所以在控制器上正确的做法应该是:
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)
{
//....
}