当前位置: 首页 > 知识库问答 >
问题:

要在laravel中选择特定列时如何返回附加字段

斜向文
2023-03-14

我在用户模型中添加了一个全名字段,如下所示:

protected $appends = ['full_name'];

public function getFullNameAttribute()
{
    return $this->name . ' ' . $this->family;
}

另一方面,我想选择并返回特定的列以及full_name字段,如下所示:

return  User::all('user_id', 'username', 'full_name')

但是laravel得到这个错误:

SQLSTATE[42S22]:找不到列: 1054字段列表中的未知列'full_name'(SQL:从用户中选择user_idusernamenameFamilyfull_name其中用户deleted_at为空)

我怎么能做我想做的?

共有3个答案

魏航
2023-03-14

你好,你可以得到两个或更多的列值使用这样的查询,

 return  $user = User::select('user_id', 'username',DB::raw("CONCAT('first_name', " ",'last_name') AS full_name" 'full_name');

或者如果你想从检索到的数组中获取列,你可以这样做,

$user = User::all();
foreach($user as $single){
   $user->full_name = $single->first_name ." ".$single->last_name
}
print_r($user);

快乐编码。

濮阳原
2023-03-14

在查询中不能使用append属性。

full_name只能在查询后访问... bcozfull_name不附加结果

$users = User::all();
return $users[0]->full_name; //this requred getFullNameAttribute like above

如果你还想做查询。这不需要$append属性。full_name已经附加了结果

return User::select('user_id', 'username' , DB::raw('CONCAT(name, " ", family) AS full_name'))->get();
邓鸿雪
2023-03-14

我认为您不需要在select列中指定。。它已附加到您的结果集。

如果需要特定的列,则可能需要使用$hidden属性,并在需要时使其可见。

 类似资料:
  • 我想显示“users”表中两个指定列“first_name”和“pic”的所有值。我正在尝试“Pulk”,但它在echo时显示为json格式。但我需要展示给大家看,一些东西——‘John pic’。求求你,有人帮帮我。这是我在“索引”中的示例代码。刀身php的吼声-

  • 假设我在表中有7列,我想只选择其中的两列,类似这样 在laravel雄辩的模型中,它可能是这样的 但我猜这个表达式将选择id等于1的所有列,我只需要两列(名称、姓氏)。如何只选择两列?

  • 因此,我通过透视表在用户和照片之间建立了许多对许多的关系。我在我的用户模型中使用。然而,这里的问题是,我的照片表中有十几列我不需要(尤其是在json响应期间)。所以一个例子是: 是否可以修改此方法,使model只返回接受的列(例如由数组指定的列)? 注意:我只想在执行时选择特定的列。在执行之类的操作时,是的,我希望所有列都像往常一样。 编辑:我尝试在Laravel Eloquent中使用“with

  • 我正在使用Spring数据jpa来创建服务。使用我从多个表中提取记录。我在模型类中使用了映射。模型类与和进行映射。相符。 我只想从建筑中选择建筑名称。 谁能告诉我怎么办? 查询DSL 结果

  • 我将html写成 现在我希望如果选项是1,那么它应该被选择为 请帮帮我!!!

  • 我用的是Laravel 8。我有两个表,并试图使用ELOQUENT从两个表中选择特定的列: 但是,如果我将方法添加到模型中,则Laravel将为表返回。 如果我没有在模型上指定selects,Laravel将返回模型中的所有内容,以及表中的、。 如何同时从和表中进行选择,同时使用热切加载?