我有一个名为tenantdetails的表,其中包含

Tenant_Id | First_Name | Last_Name | ........

我想通过MySQL的串联函数将First_NameLast Name检索为一列。所以我写了我的controller如下
$tenants = Tenant::orderBy('First_Name')->lists('CONCAT(`First_Name`," ",`Last_Name`)','Tenant_Id');

但是导致以下错误:



在Laravel Eloquent中调用MySQL函数时,如何避免出现反引号。我只对Eloquent感兴趣(对流利的查询不感兴趣)。提前致谢。

更新

感谢@Andreyco为我提供帮助。我们可以使用Laravel模型以更优雅的方式实现这一目标,如下所示:

在我们的model中:
public function getTenantFullNameAttribute()
{
    return $this->attributes['First_Name'] .' '. $this->attributes['Last_Name'];
}

并在我们的controller中:
$tenants = Tenant::orderBy('First_Name')->get();
$tenants = $tenants->lists('TenantFullName', 'Tenant_Id');

最佳答案

Tenant::select('Tenant_Id', DB::raw('CONCAT(First_Name, " ", Last_Name) AS full_name'))
    ->orderBy('First_Name')
    ->lists('full_name', 'Tenant_Id');

08-19 03:50