2014-12-05 5 views
1

내 사용자 목록을 선택하고 있지만 내 데이터베이스는 성 및 이름으로 저장되어 있습니다. 목록에있는 모든 문서는 te 데이터베이스에서 하나의 열 항목 만 사용합니다. 내 이름에이 두 가지 이름을 모두 얻으려면 어떻게해야합니까?Laravel 선택 목록에서 더 많은 데이터 가져 오기

컨트롤러

public function make() { 
    $users = User::lists('lastname','id'); 
    return View::make('admin.awardAchievement')->with('users', $users); 
} 

보기

{{ Form::select('user', $users , Input::old('user')) }} 

이 단지 내 사용자의 LASTNAME를 인쇄 줘야하지만, 나는 FIRSTNAME을 표시 목록을 원하고 LASTNAME .. 누군가가 도와 주시겠습니까?

답변

3

사용자 정의 DB 표현식을 사용하고 lastname + id를 연결하여이 작업을 수행 할 수 있습니다. 이는 Form 헬퍼가 텍스트 (옵션 텍스트)에 대해 1 열과 id (옵션 값 속성)에 대해 1 열만 좋아하기 때문입니다. 당신이 CONCAT 다른 DBMS 년대에 다르게 동작하거나이 기능은 존재하지도 수 있다는 것을 명심해야한다를 제외하고

$users = User::select(DB::raw('CONCAT(lastname, id) AS userselect, id'))->lists('userselect', 'id'); 

나는 갈이 방법을 찾을 수 있습니다. 이 점에 신경 쓰면 사용자 목록을 반복하고 표준 PHP 스크립트로 수동으로 연결합니다.

또 다른 옵션은 사용자의 요구를 지원하도록 양식 도우미를 조정하는 것입니다. 코드를 신속하게 업그레이드하려면이 작업을 권장하지 않습니다.

편집 : 최초의 코멘트를 확인

당신은 모델에 세터를 추가, 그래서 뭔가 같이 할 수
+0

확인 HTTP 작업을 수행 할 수 있습니다 : 모델에 맞춤 속성을 정의하는 //laravel.com/docs/4.2/eloquent#accessors-and-mutators 이것이 최선의 방법 일 것입니다. –

+0

Where 절을 쿼리에 추가하는 방법은 무엇입니까? – JBS

2

:

public function getFullNameAttribute() 
{ 
    return $this->attributes['firstname'] . ' ' . $this->attributes['lastname']; 
} 

다음 방금

$users = User::lists('fullname','id'); 
관련 문제