я модель под названием Пользователи определяется как:поведение CakePHP не работает с bindModel
class User extends AppModel {
...
public $actsAs = array(
'Date' => array('date_birth')
);
...
Датаповедение преобразует поле date_birth из формата ISO ('гггг-мм-дд ') в формат локали (' dd/mm/yyyy ').
Когда из моего контроллера я находка, такие как
$this->User->find(...)
поведение работает отлично и поле date_birth отформатирован как дд/мм/гггг.
Теперь это моя проблема:
У меня есть вторая модель под названием Отзывы.
В мой контроллер я использую метод bindModel создать следующие отношения между двумя моделями:
Обзор belongsTo Пользователь
Когда я $ this-> Обзор-> найти() информация пользователя добавляется вместе с информацией об обзоре. Но поведение, определенное в модели пользователя, не применяется, а поле date_birth отформатировано как yyyy-mm-dd.
Есть ли причина для этого?
Вы просто с помощью рекурсивной, чтобы получить ваши дополнительные данные, или вы используя Containable (как и должно быть)? Я попытался бы убедиться, что он не запускается. Он может работать, но поскольку это связанная модель, данные форматируются по-разному, и ваша логика может потребоваться изменить. Подробнее здесь: http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfind – Dave
Я не использую Containable. Метод afterFind в поведении не вызывается. Я проверю Containable, спасибо. – Franz
Кроме того, почему вы привязываете модель к контроллеру? Кажется, что Review всегда будет принадлежать пользователю через ассоциации модели. Я предполагаю, что это потому, что вы используете рекурсию, но как только вы переключите все приложение на '$ recursive = -1; '(в AppModel) и используйте Containable для получения дополнительных данных модели, вы также можете начать фактически настраивать все свои ассоциации полностью и не беспокоясь о том, что нужно постоянно связывать/развязывать все заботы о том, чтобы они вытащили лишние нежелательные данные. Итак, установите '$ recursive -1;' и '$ actAs = array ('Containable')' в вашем AppModel и создайте все ассоциации. – Dave