【问题标题】:Select specific columns using find in Eloquent ORM在 Eloquent ORM 中使用 find 选择特定列
【发布时间】:2016-01-18 10:26:08
【问题描述】:

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

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

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

$user = User::find(1);

【问题讨论】:

  • $user = User::select('firstname', 'lastname')->find(1); 应该可以工作
  • 是的,你是对的。谢谢!
  • @MarkBaker:如果你发布你的答案,我会选择你的。
  • $user = User::select(['firstname', 'lastname'])->find(1);

标签: php mysql laravel eloquent


【解决方案1】:

你有两个选择。

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

$user = User::find(1, ['firstname', 'lastname']);

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

$user = User::select(['firstname', 'lastname'])->find(1);

【讨论】:

    【解决方案2】:

    这是另一种方式,类似于@patricus。

    $did = User::findOrFail($id, ['first_name', 'last_name']);
    

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多