CMO*_*MOS 4 php mysql orm laravel eloquent
所以我在大小和服务器请求方面遇到了一些问题。所以我试图从雄辩中获得行的缩小版本。例如,这是我的查询调用
$user = User::where('email', '=', 'example@test.com')->first();
Run Code Online (Sandbox Code Playgroud)
这可行,但会返回大量信息。我不需要的东西,关系,可观察值,日期,受保护状态,可填充和每一列。这是预料之中的,所以如果我想获得名字、姓氏和电子邮件。我可以做这样的事情
$users = DB::table('users')->select('firstname','lastname', 'email')->get();
Run Code Online (Sandbox Code Playgroud)
这会起作用,但我不想每次我想这样做时都输入它。我是否可以在 eloquent 或我的模型中设置某个地方,以便我可以做到
$user = User::where('email', '=', 'example@test.com')->min()->first();
Run Code Online (Sandbox Code Playgroud)
只需添加一个名为 min() 的自定义函数,该函数仅获取这三个值。这样的事情可能吗?
是的,如果您在模型中声明一个方法,您就可以做到User这一点,如下所示:
// User.php
public function scopeMin($query)
{
return $query->select('firstname','lastname', 'email');
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它(仅获取'firstname','lastname', 'email'):
$user = User::where('email', '=', 'example@test.com')->min()->first();
Run Code Online (Sandbox Code Playgroud)
阅读文档中有关查询范围的内容。
| 归档时间: |
|
| 查看次数: |
14426 次 |
| 最近记录: |