2017-10-20 1 views
0

애들 아,CakePHP의 3 - index.ctp의 다중 관계 같은 테이블 표시

I는 사용자 테이블의 ID 필드에 관련된 2 개 필드 (solicitante 및 resolvedor)가 어떻게 I는 index.ctp 모두를 표시 할 ? 나는 두 가지를 넣어 경우, 정보가

내 index.ctp

<?= $chamado->has('user') ? $this->Html->link($chamado->user->nome, ['controller' => 'Users', 'action' => 'view', $chamado->user->id]) : '' ?> 

자체를 반복하기 때문에 내가 아래에이 코드를 사용하지만이 두 필드를 구분하는 방법을 모른다, 나는 단지 하나 개의 필드를 넣어 내 컨트롤러

public function index() 
{ 

    $this->paginate = [ 
     'contain' => ['Users'] 
    ]; 

    $chamados = $this->paginate($this->Chamados); 


    $this->set(compact('chamados')); 
    $this->set('_serialize', ['chamados']); 
} 

내 모델

public function initialize(array $config) 
{ 
    parent::initialize($config); 

    $this->setTable('chamados'); 
    $this->setDisplayField('id'); 
    $this->setPrimaryKey('id'); 

    $this->addBehavior('Timestamp'); 


    $this->belongsTo('Users', [ 
     'foreignKey' => 'solicitante', 
     'joinType' => 'INNER' 
    ]); 


} 

이들 다음 creen 이미지 :이 방법으로 차별화 할 수

Index.ctp screen

답변

0

:

$this->belongsTo('Solicitantes', [ 
    'className' => 'Users' 
    'foreignKey' => 'solicitante', 
    'joinType' => 'INNER' 
]); 

$this->belongsTo('Resolvedores', [ 
    'className' => 'Users' 
    'foreignKey' => 'resolvedor', 
    'joinType' => 'INNER' 
]); 

을하고보기는

<?= $chamado->has('solicitante') ? $this->Html->link($chamado->solicitante->nome, ['controller' => 'Users', 'action' => 'view', $chamado->solicitante->id]) : '' ?> 

<?= $chamado->has('resolvedor') ? $this->Html->link($chamado->resolvedor->nome, ['controller' => 'Users', 'action' => 'view', $chamado->resolvedor->id]) : '' ?> 

수동

https://book.cakephp.org/3.0/en/orm/associations.html#belongsto-associations

참조