CakePHP :: afterFind() с неосновной моделью

В этом приложении у меня есть модель аренды, которая занимает центральное место в приложении. Аренда связана с Клиентом, Местом и частью Оборудования. Почти во всех случаях я хочу «очистить» результаты, оставив только активные в данный момент пункты проката. Однако я не хочу делать это во всех случаях, так как же лучше всего пометить это?

Моя текущая мысль состоит в том, чтобы добавить переменную модели ($cleanRentals = true) и при необходимости установить для этого флага значение false, а также проверить переменную в afterFind().


person b. e. hollenbeck    schedule 25.06.2012    source источник


Ответы (1)


Такая защита/очистка данных на связанных моделях в Cake показывает, чего не хватает системе моделей Cake. Это становится грязным.

Но я бы подумал о создании пользовательского искателя, что-то вроде

$this->Rental->findActive();

Тогда вы можете просто использовать это, когда хотите получить только активную аренду.

Подробнее: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#creating-custom-find-types

person michaelhagedon    schedule 25.06.2012
comment
Похоже, что код, который у меня сейчас есть в методе Rental afterFind, даже не запускается — у меня есть записи журнала отладки, которые не записываются. - person b. e. hollenbeck; 26.06.2012
comment
Да, это может быть сложно сделать с Cake. Возможно, это все еще проблема: ask.cakephp.org/questions/view/ - person michaelhagedon; 26.06.2012