Я новичок в CakePHP, и я пытаюсь построить сложный запрос для результатов. Это убивает меня. Может быть, некоторые могут помочь мне здесь. Я использую торт 2.7Как создать правильный запрос CakePHP для вложенных отношений
У меня есть две таблицы с тремя отношениями (многие из многих). Neighbourhood
и Polygon
. Корпус выглядит так: Neighbourhood
имеет много Neighbourhoods
, и он также принадлежит многим Neighbourhoods
. Также Neighbourhood
имеет множество Polygons
и Polygon
принадлежит mnay Neighbourhoods
.
Neighbourhood
таблица содержит 2 поля name
и zip
. Я получаю от пользователя zip code
.
А теперь, что я хочу: Я хочу, чтобы получить все Polygons
от Neighbourhood
и это Neighbours
. Где Neighbourhood.zip = defined by user
.
Как я могу это сделать? Должен ли я писать пользовательский запрос или делить процесс на более мелкие шаги? Я борюсь с этим весь день.
Вот как модель отношения выглядят любят:
class Neighbourhood extends AppModel
{
var $hasAndBelongsToMany = array(
'Neighbourhoods' => array(
'className' => 'Neighbourhood',
'joinTable' => 'neighbourhoods_neighbours',
'foreignKey' => 'neighbourhood_id',
'associationForeignKey' => 'neighbour_id',
'unique' => false
),
'Polygon' => array(
'className' => 'Polygon',
'joinTable' => 'neighbourhoods_polygons',
'foreignKey' => 'neighbourhood_id',
'associationForeignKey' => 'polygon_id',
'unique' => false
),
);
}
class Polygon extends AppModel
{
var $hasAndBelongsToMany = array(
'Neighbours' => array(
'className' => 'Neighbourhood',
'joinTable' => 'neighbourhoods_polygons',
'foreignKey' => 'polygon_id',
'associationForeignKey' => 'neighbourhood_id',
'unique' => false,
)
);
}
я сумел создать запрос свой путь, который работал , спасибо, что показал мне способ – Vardius
Мое удовольствие. это не так, потому что это для cakephp 2.x, которого у вас нет большой гибкости. Но в cakephp 3.x, который является ORM, вы можете делать почти все гораздо проще. – Fury
Рамка и версия не были моим выбором, это был выбор клиента. я поступаю так, как мне говорят. – Vardius