Есть ли ограничение на то, насколько глубоким будет выбор, который будет использоваться для отношений с многими из них? У меня такой дизайн:Предел того, насколько глубоко много-ко-многим пойдет с CakePHP
В обзоре стола есть много секций опроса. В разделах обзора разделов много вопросов. В Таблицах есть много возможных ответов.
Если я делаю это для таблицы обследования:
$this->loadModel('Survey');
$this->Survey->recursive = 2;
$getSurvey = $this->Survey->find('all');
Это будет только пойти так далеко, за столом вопросов, но вернуть возможные ответы табл. Но, если я запрошу таблицу Survey Sections, она вернет все. Это проблема с моим кодом или лимит на то, насколько глубоким будет поиск?
Вот мои модели:
<?php
App::uses('AppModel', 'Model');
class Survey extends AppModel {
public $validate = array(
);
public $belongsTo = array(
);
public $hasMany = array(
'surveySection' => array(
'className' => 'SurveySection',
'foreignKey' => 'surveys_id',
),
);
}
<?php
App::uses('AppModel', 'Model');
class SurveySection extends AppModel {
public $validate = array(
);
public $belongsTo = array(
);
public $hasMany = array(
'Question' => array(
'className' => 'Question',
'foreignKey' => 'survey_section_id',
),
);
}
<?php
App::uses('AppModel', 'Model');
class Question extends AppModel {
public $validate = array(
);
public $belongsTo = array(
);
public $hasMany = array(
'PossibleResponse' => array(
'className' => 'PossibleResponse',
'foreignKey' => 'questions_id',
),
);
}
<?php
App::uses('AppModel', 'Model');
class PossibleResponse extends AppModel {
public $validate = array(
);
public $belongsTo = array(
);
}
Что делает ваш код при попытке '$ this-> Survey-> recursive = 3;' вместо 2? – Holt
Я был под впечатлением, что значения только пошли на 2: http://book.cakephp.org/2.0/ru/models/model-attributes.html#recursive, но вы правы, изменив его на 3 раза. – jason
Я не уверен, что именно поэтому я не опубликовал его как ответ (это сработало?). Я думаю, что книга CakePHP показывает только пример для конкретного случая. – Holt