Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.5-查找失败并检查另一个值_Laravel - Fatal编程技术网

Laravel 5.5-查找失败并检查另一个值

Laravel 5.5-查找失败并检查另一个值,laravel,Laravel,我正在使用的Laravel 5.5中尝试这样 try { $fruit = Fruit::findOrFail($id); } 但我想检查一下,它不仅找到了带有所提供ID的水果,而且还有“红色”的水果颜色 我是否需要使用“with”语句来执行此操作 我知道我可以在之后再进行一次检查,但我想知道我是否可以在一次声明中完成这一切?一些事情。首先,在这里抛出异常是处理“如果”情况的错误方法。如果您计划在一个值不返回的情况下,那么这不是异常的正确使用。回答你的问题: $frui

我正在使用的Laravel 5.5中尝试这样

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。