programing

라라벨 4 웅변가와 열을 연결하는 방법은 무엇입니까?

shortcode 2023. 7. 22. 11:48
반응형

라라벨 4 웅변가와 열을 연결하는 방법은 무엇입니까?

라는 테이블이 있습니다.tenantdetails을 포함하는 것.

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

그리고 나는 다시 찾고 싶습니다.First_Name그리고.Last NameMySQL의 연결 함수를 통해 하나의 열로.그래서 나는 나의 글에 씁니다.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 함수를 호출하는 동안 백트릭을 피할 수 있는 방법은 무엇입니까?저는 유창한 질의가 아닌 웅변에만 관심이 있습니다.잘 부탁드립니다.

갱신하다

저를 도와주신 @Andreeco씨께 감사드립니다.아래와 같이 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');

쉬운 방법은 사용하는 것입니다.selectRawTailor에 의해 구현되었습니다.Jan 30, 2014

원천

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

선택한 결과에서 열을 선택하는 데 사용되는 lists(목록) 메서드입니다.먼저 이름과 성에 연락하고 select 문에서 이 열에 새 별칭 이름을 지정합니다.

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

그런 다음 목록에서 이 별칭을 선택할 수 있습니다.

DB::raw()를 사용하여 필드의 값을 일치시켜야 합니다.

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

        )
       ->orderBy('First_Name')
       ->lists('full_name', 'Tenant_Id');

쿼리 작성기를 사용하여 다음과 같은 작업을 수행할 수도 있습니다.

DB::table('Tenant')
->selectRaw('CONCAT(First_Name, " - ", Last_Name) as fullName, id')
->get();

도움이 되길 바랍니다 :)

언급URL : https://stackoverflow.com/questions/22008487/how-to-concatenate-columns-with-laravel-4-eloquent

반응형