Laravel 5.5-查找失败并检查另一个值
我正在使用的Laravel 5.5中尝试这样Laravel 5.5-查找失败并检查另一个值,laravel,Laravel,我正在使用的Laravel 5.5中尝试这样 try { $fruit = Fruit::findOrFail($id); } 但我想检查一下,它不仅找到了带有所提供ID的水果,而且还有“红色”的水果颜色 我是否需要使用“with”语句来执行此操作 我知道我可以在之后再进行一次检查,但我想知道我是否可以在一次声明中完成这一切?一些事情。首先,在这里抛出异常是处理“如果”情况的错误方法。如果您计划在一个值不返回的情况下,那么这不是异常的正确使用。回答你的问题: $frui
try {
$fruit = Fruit::findOrFail($id);
}
但我想检查一下,它不仅找到了带有所提供ID的水果,而且还有“红色”的水果颜色
我是否需要使用“with”语句来执行此操作
我知道我可以在之后再进行一次检查,但我想知道我是否可以在一次声明中完成这一切?一些事情。首先,在这里抛出异常是处理“如果”情况的错误方法。如果您计划在一个值不返回的情况下,那么这不是异常的正确使用。回答你的问题:
$fruit = Fruit::where(‘id’, $id)->where(‘color’, ‘red’)->get();
这将返回符合条件的项目集合。接下来要测试集合是否为空(无水果),可以执行以下操作:
if($fruit->isEmpty()) {
//handle empty collection
}
希望这有帮助!用于收藏的Laravel文档踢出了一个**。我建议您进一步阅读。在调用查找之前,您只需在中添加额外的条件:
try {
$fruit = Fruit::where('fruit_color', 'red')->findOrFail($id);
}
试试这个代码
$fruit = Fruit::where(‘id’, $id)->where(‘color’, ‘red’)->first();
try语句的可能重复项应捕获。。但是,如果需要按特定的where条件过滤db结果,并且如果没有匹配项,则一次性抛出404,则在
where
方法之后的末尾使用findOrFail()
方法,排除try。