Я, как обычно, не ищу легких путей и, как обычно, сталкиваюсь с задачами, не освещенными на book.cakephp.org ;-) Самой хлопотной частью проекта для меня всегда была пагинация и все, что с ней связано (выборки, сортировка).
И вот, я в очередной раз наступил на грабли, и на мой вопрос нет ответа.
Итак, какая была задача: Модель A – имеет много моделей B Модель B – принадлежит модели A Модель B — actAs('Изображение') Изображение – чудесное поведение Евгения Томенко , который служит для связи записи в модели с сохраненным изображением.
В случае запроса Model B -> .
любой формы поведение работало как часы, и я получал нужные мне данные, в данном случае картинки.
Однако когда возникла задача построить запрос типа Модель B -> Модель -> A (с условиями, когда выбор основан на полях Модели A) Оказалось, что поиск и привязка работают отлично, но в результатах ассоциированной Модели Б нет и следа работы поведения.
Я просто получил поля модели, без нужных мне «искажений».
Никакие возни с Contain, запросом порядка и т.п.
— ни к чему не привели.
В группе Google также нет ответа.
А сегодня нашел еще одни грабли, но с поведением Перевести.
Если вы используете инструкции , и делай как там советуют - всё работает нормально, кроме моей любимой привязки.
А именно, нельзя сортировать по полям, расположенным в таблице i18n. Не будет работать.
Только для тех полей, которые присутствуют явно.
Так.
Я, конечно, не хочу сказать, что сортировка таблицы, построенной через i18n, будет работать быстро или в принципе будет работать вменяемо.
Возможно, это не так.
Но в этом случае, если вам нужно как-то отсортировать результаты, отличные от id, созданных, то у вас нет шансов использовать такое поведение.
Это не сработает. :( И если первые грабли можно обойти вторым запросом (сначала получая список id Model B, а потом запросив все записи напрямую из Model B (вот тут поведение будет работать).
то во вторых граблях только так сортировать — значит обойтись без коробочного поведения.
2Все: Если кто-то решил данные проблемы, поделитесь решением в комментариях.
Речь идет о CakePHP 1.2.3.8166. Теги: #CakePHP #поведение #грабли #изображение #Перевести #Чулан
-
Ли Чжи
19 Oct, 24 -
Момент Истины
19 Oct, 24 -
Самый Быстрый Трактор В Мире
19 Oct, 24 -
Операционная Система На Ваш Выбор...
19 Oct, 24 -
Скрытые Цепи Маркова, Алгоритм Баума-Уэлша
19 Oct, 24