2016-09-07 7 views
1

내 계정 모델 : ID, 이름CakePHP의 두 모델 협회

내 항목 모델 : 아이디, account_id1, account_id2, 양

그래서 내 항목 계정 모델이 외래 키가 있습니다.

이와 같이 모델 연관을 정의했습니다.

$this->belongsTo(
    'Acc1', 
    [ 
    'className' => 'Accounts', 
    'foreignKey' => 'account_id1', 
    'joinType' => 'INNER', 
    ] 
); 

$this->belongsTo(
    'Acc2', 
    [ 
    'className' => 'Accounts', 
    'foreignKey' => 'account_id2', 
    'joinType' => 'INNER', 
    ] 
); 

이제 관련 계정의 이름이 "ab"로 시작하는 항목을 찾아야합니다. 내 항목에서

모델 파일 :

$this->find() 
    ->matching(
    'Acc1', 
    function ($q) { 
     return $q->where(['LEFT(Acc1.name, 2) =' => 'ab']); 
    } 
); 

이 나에게 (account_id1에 의해) 관련 계정 이름이 "AB"

$this->find() 
    ->matching(
    'Acc1', 
    function ($q) { 
     return $q->where(['LEFT(Acc1.name, 2) =' => 'ab']); 
    } 
) 
    ->matching(
    'Acc2', 
    function ($q) { 
     return $q->where(['LEFT(Acc2.name, 2) =' => 'ab']); 
    } 
); 

이 곳 의 결과로 시작하는 모든 항목을 줄 것이다 계정 이름은 "ab"로 시작합니다.

Acc1.name 또는 Acc2.name이 "ab"로 시작하는 항목을 어떻게 얻을 수 있습니까?

답변