在 Eloquent ORM 中使用 find 选择特定列

rot*_*rcz 6 php mysql laravel eloquent

在 Laravel 中,如何使用 find 获取特定列?我知道你可以像这样得到它:

$user = User::where('u_id', '=', 1)
        ->get(['firstname', 'lastname']);
Run Code Online (Sandbox Code Playgroud)

有没有办法用 find 做到这一点?这是我目前拥有的:

$user = User::find(1);
Run Code Online (Sandbox Code Playgroud)

pat*_*cus 11

你有两个选择。

首先,您可以将要选择的列作为第二个参数传递给find()

$user = User::find(1, ['firstname', 'lastname']);
Run Code Online (Sandbox Code Playgroud)

其次,虽然有些特殊,但find()只是用于执行查询的方法,因此您可以像往常一样预先修改查询(添加选择、位置、订单等)。因此,您可以select()在执行之前添加一个find()

$user = User::select(['firstname', 'lastname'])->find(1);
Run Code Online (Sandbox Code Playgroud)