CakePHP Фильтрация связанной модели по массивуPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 CakePHP Фильтрация связанной модели по массиву

Сообщение Anonymous »

У меня есть модели: Project=>Ключевое слово

с использованием связи HMBTM (заданной в обеих моделях).

Таблица ключевых слов действует как дерево, т.е. ключевые слова имеют между собой иерархические отношения.

Я использую сдерживаемое поведение.

Пользователь выбирает ключевое слово.

Я хочу, чтобы возвращаемые записи (проекты) ограничивались выбранным ключевым словом ИЛИ любым из дочерних элементов этого ключевого слова. Я пытаюсь повторно использовать свое индексное действие. Если ключевое слово не выбрано, отобразите стандартное представление индекса, если выбрано ключевое слово, затем найдите все дочерние ключевые слова, а затем отфильтруйте возвращенные проекты, указав те, у которых есть любой из идентификаторов ключевых слов.

Я пытался создать массив дочерних (и исходных) идентификаторов ключевых слов, но не могу понять, как заставить этот массив стать фильтром в моем действии поиска.

Я пробовал использовать :

Код: Выделить всё

$this->Project->find('all',
array(
'contain' => array('Keyword.id'=>array($childkeywords))
)
);
где $childkeywords — это массив соответствующих идентификаторов, созданный с помощью array_push. Но здесь не используются пары ключ-значение, а только целочисленные значения для каждого идентификатора. Поэтому я думаю, что он структурирован неправильно.

Я чувствую, что хочу сделать что-то довольно простое, но чувствую, что ухожу все дальше от решения. Нет ли стандартного способа ограничить записи набором идентификаторов связанной модели?

Ура!

С помощью Пауло у меня теперь есть:

Код: Выделить всё

$this->Project->find('all', array(
'fields' => array('id','title','country', 'project_ref'),
'type' => array('inner'),
'contain' => array('Keyword' => array(
'conditions' => array('Keyword.id' => $childkeywords)
)
)
)
)
Но использование типа внутренний не меняет результатов..

Подробнее здесь: https://stackoverflow.com/questions/128 ... l-by-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»