我有一个名为tenantdetails
表包含如何连接列与Laravel 4雄辩?
Tenant_Id | First_Name | Last_Name | ........
,我想找回First_Name
和Last Name
为通过的MySQL连接函数一列。所以我写在我的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).
我们怎样才能避免反引号,而调用的MySQL在Laravel雄辩的功能。我只对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');
这个模型的解决方案非常棒。这是在任何地方的文档? –
@Kyle Ridolfo。谢谢。其实我忘记了解决方案的来源。但是我确信,直到那天我搜索解决方案的时候,它不在文档中。 – manuthalasseril