Eloquent -gt;first() if -gt;exists()(Eloquent -first() 如果 -exists())
本文介绍了Eloquent ->first() 如果 ->exists()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想获取条件匹配的表中的第一行:
I want to get the first row in table where condition matches:
User::where('mobile', Input::get('mobile'))->first()
效果很好,但如果条件不匹配,则会抛出异常:
It works well, but if the condition doesn't match, it throws an Exception:
ErrorException
Trying to get property of non-object
目前我是这样解决的:
if (User::where('mobile', Input::get('mobile'))->exists()) {
$user = User::where('mobile', Input::get('mobile'))->first()
}
我可以在不运行两个查询的情况下执行此操作吗?
Can I do this without running two queries?
推荐答案
注意:first() 方法不会像原始问题中描述的那样抛出异常.如果您收到此类异常,则说明您的代码中存在另一个错误.
使用 first() 并检查结果的正确方法:
The correct way to user first() and check for a result:
$user = User::where('mobile', Input::get('mobile'))->first(); // model or null
if (!$user) {
// Do stuff if it doesn't exist.
}
其他技术(不推荐,不必要的开销):
Other techniques (not recommended, unnecessary overhead):
$user = User::where('mobile', Input::get('mobile'))->get();
if (!$user->isEmpty()){
$firstUser = $user->first()
}
或
try {
$user = User::where('mobile', Input::get('mobile'))->firstOrFail();
// Do stuff when user exists.
} catch (ErrorException $e) {
// Do stuff if it doesn't exist.
}
或
// Use either one of the below.
$users = User::where('mobile', Input::get('mobile'))->get(); //Collection
if (count($users)){
// Use the collection, to get the first item use $users->first().
// Use the model if you used ->first();
}
每种方法都是获得所需结果的不同方式.
Each one is a different way to get your required result.
这篇关于Eloquent ->first() 如果 ->exists()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Eloquent ->first() 如果 ->exists()
基础教程推荐
猜你喜欢
- HTTP 与 FTP 上传 2021-01-01
- 使用 PDO 转义列名 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01