Я играю с базой данных, связанной с лыжной поездкой, на которой я бегаю.Я пытаюсь перечислить цитаты, но сортирую по человеку, который произнес цитату, и пытаюсь найти помощника по поиску страниц, чтобы я мог это сделать.
У меня есть четыре соответствующие таблицы.
цитаты, поездки, люди и посещаемость.Посещаемость - это, по сути, объединяющая таблица для людей и поездок.
Отношения таковы:
Посещаемость принадлежит человеку, который имеет большое количество посещений
Посещаемость принадлежит к поездке, имеет большое количество посещений
Посещаемость имеет много цитат и принадлежит посещаемости
В контроллере QuotesController я используюableable для извлечения полей из Quote вместе с соответствующей посещаемостью и полями из Trip и Person, связанной с этой посещаемостью.
function index() {
$this->Quote->recursive = 0;
$this->paginate['Quote'] = array(
'contain' => array('Attendance.Person', 'Attendance.Trip'));
$this->set('quotes', $this->paginate());
}
Кажется, этоработает нормально, и в представлении я могу без проблем вывести
foreach ($quotes as $quote) {
echo $quote['Attendance']['Person']['first_name'];
}
.
То, что я не могу заставить работать, - это доступ / использование той же переменной, что и у поля сортировки в paginate
echo $this->Paginator->sort('Name', 'Attendance.Person.first_name');
или
echo $this->Paginator->sort('Location', 'Attendance.Trip.location');
Не работает.Похоже, что-то сортирует, но я не уверен, что.
Массив $ quotes, который я передаю, выглядит так:
Array
(
[0] => Array
(
[Quote] => Array
(
[id] => 1
[attendance_id] => 15
[quote_text] => Hello
)
[Attendance] => Array
(
[id] => 15
[person_id] => 2
[trip_id] => 7
[Person] => Array
(
[id] => 2
[first_name] => John
[last_name] => Smith
)
[Trip] => Array
(
[id] => 7
[location] => La Plagne
[year] => 2000
[modified] =>
)
)
)
Я был бы безмерно благодарен, если кто-то мог бы предложитькак я мог бы быть в состоянии сортировать по имени и фамилии человека, связанного с цитатой.Я подозреваю, что мой синтаксис неправильный, но я не смог найти ответ.Разве нельзя сортировать по ассоциации второго уровня таким образом?
Я довольно новичок в CakePHP, поэтому, пожалуйста, будьте осторожны.
Заранее большое спасибо.