Laravel 5.5 - findorFail并检查另一个值

时间:2018-02-16 00:00:12

标签: laravel

我正在使用Laravel 5.5中试试这样......

try {
        $fruit = Fruit::findOrFail($id);
    }

但是我想检查一下,它不仅会找到带有提供ID的Fruit,而且还会检测到' red'

的fruit_color

我是否需要使用''声明?

我知道我之后可以再运行一次检查,但是想知道我是否可以在一个声明中完成这一切?

3 个答案:

答案 0 :(得分:1)

一些事情。首先,在这里抛出异常是处理'if'情况的错误方法。如果您计划的是不返回值的情况,那么这不是对异常的正确使用。回答你的问题:

$fruit = Fruit::where(‘id’, $id)->where(‘color’, ‘red’)->get();

这会返回符合条件的集合项目。接下来测试集合是否为空(没有水果),您可以执行以下操作:

if($fruit->isEmpty()) {
    //handle empty collection
}

希望这有帮助!收集的Laravel文件踢了**。我建议在那里进一步阅读。

答案 1 :(得分:0)

您只需在调用find之前添加额外条件:

try {
    $fruit = Fruit::where('fruit_color', 'red')->findOrFail($id);
}

答案 2 :(得分:0)

试试此代码

$fruit = Fruit::where(‘id’, $id)->where(‘color’, ‘red’)->first();