2015-09-17 2 views
0

[править] решено, см: https://stackoverflow.com/a/32638610/221650CakePHP3 ассоциированных сущностей не приходят через из находки() (или получить) даже содержать пункт

Некоторых связанные с ним данные не приходят через, хотя это в пункте contain.

я могу получить $project->Participants если я установить belongsToMany отношений в Projects таблицы, относящихся к Participants через ProjectParticipants, но, как я до сих пор не могу добраться до других таблиц, связанных с ProjectParticipants даже с $project->participants->_joinData->other_related_table

Как бы я получить ProjectParticipants и Participants с тем же запросом?

Код:

// Database: Projects <--1:N-- ProjectParticipants --M:1--> Participants 

// ProjectController: 
    $project = $this->Projects->get($id, ['contain'=>[ 
      'ProjectParticipants.Participants']); 
// ProjectsTable: 
    $this->hasMany('ProjectParticipants', [ 
     'foreignKey' => 'project_id']); 
// ProjectParticipantsTable: 
    $this->belongsTo('Participants', [ 
     'foreignKey' => 'participant_id']); 

ответ

0

Это очень сложно отношения многие ко многим.

//projectTable 
$this->belongsToMany('Participants'); 

//praticipantsTable 
$this->belongsToMany('Projects'); 

Это хорошо описано в Bookmark Tutorial.

+0

Но я уже упоминал отношения 'ownToMany' в моем вопросе. – Petruza

0

Извините, все в порядке, я не заметил, что был обычай Entity\Project::_getParticipants(), который возвращал коллекцию.
Простая отладка на этом объекте показала все в порядке, но затем, когда она запускалась через foreach, ассоциации исчезли.

Смежные вопросы