如何连接列与Laravel 4雄辩?

我有一张名为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'); 

但是结果如下错误:

  SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`," ",`First_Name`)`, `Id` from `tenantdetails` order by `F' at line 1 (SQL: select `CONCAT(`First_Name`," ",`Last_Name`)`, `Id` from `tenantdetails` order by `First_Name` asc). 

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

更新

感谢@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'); 

一个简单的方法是使用selectRaw 。 它于Jan 30, 2014Jan 30, 2014由裁缝实施

资源

 Tenant::selectRaw('CONCAT(First_Name, " ", Last_Name) as TenantFullName, id')->orderBy('First_Name')->lists('TenantFullName', 'id')) 

用于从选定结果中select列的lists()方法。 所以首先联系名字和姓氏,并在select语句中给这个列添加新的别名

  $tenants = Tenant::orderBy('First_Name')->select(DB::row('CONCAT(`First_Name`," ",`Last_Name`) as name'),'Tenant_Id')->lists('name', 'id'); 

那么你可以在list()方法中select这个别名

你应该使用DB :: raw()来连接这些字段

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