2014-02-15 3 views
0

두 테이블, 사람 및 게시물이 있다고 가정 해보십시오. 사람들은 그 안에 id, first_name 및 last_name을가집니다. posts 테이블에는 id, title, body 및 person_id가 있습니다. 게시물 belongsTo 사람과 사람 hasMany 게시물. 그런 다음 스키마를 굽습니다. 게시물을 추가하는 기본 양식에는 데이터베이스에있는 사람들 목록에서 게시물을 소유 한 사람을 선택하기위한 선택 상자가 있습니다. 그러나 사람의 이름 만 게시물에 표시됩니다. 그 선택 상자에 이름과 성을 어떻게 표시 하시겠습니까?cakePHP 2.4의 관련 테이블에서 선택 상자에있는 사람의 성과 이름을 얻으려면 어떻게합니까?

사람 모델 : 추가 기능에 대한

class Person extends AppModel { 
    public $displayField = 'first_name'; 
    public $hasMany = array('Post'); 
... 

게시물 컨트롤러이 포함됩니다 :

$people = $this->Post->Person->find('list'); 
$this->set(compact('people')); 

그리고 포스트보기이있을 것이다 :

echo $this->Form->input('person_id'); 

뷰가 자동으로 감지됩니다 선택 상자를 연결하고 채 웁니다.하지만 first_name과 last_nam을 얻으려면 어떻게해야합니까? 선택 영역에 표시하려면? Person에서

(여러 데이터베이스 열을 선택 상자에 표시 할 것 곳은 너무 다른 상황에 적용하지만, 물어 질문 쉽게 만들었 기 때문에 내가 예를 들어이 들었다.)

답변

5

모델, 사용

public $displayField = 'full_name'; 

public $virtualFields = array(
    'full_name' => 'CONCAT(Person.first_name, " ", Person.last_name)' 
);