Intereting Posts
Перенос данных в Firebase из mysql Слишком большие данные POST. Уменьшите данные или увеличьте значение "post_max_size" Заголовки HTTP для загрузки файлов PHP: получение данных из ввода в формате HTML, а затем вывод с использованием filter_array Как вывести значение для каждого третьего результата инструкции foreach в php? mysqli – вызов ошибки fetch_Array для функции-члена fetch_array () для не-объекта mysqli Есть ли способ использования PHP-ActiveRecord в качестве уровня ORM / абстракции Symfony? PHP – Как конвертировать URL-адрес YouTube с помощью Regex Новый MYSQL-сервер не знает JSON-тип данных Добавьте строку в таблицу и отправьте на сервер, отправьте стол через jquery на php Цикл Foreach объявляет переменную в массиве select table php + MySQL редактирует данные таблицы Что происходит быстрее: MySQL / PHP или прямо из статических файлов? Тестирование модулей с помощью файла приложения конфигурации в Laravel База данных MySQL не запускается в XAMPP Manager-osx

В CakePHP 1.3 есть ли обратный вызов для использования после `saveAll ()`?

Используя CakePHP 1.3, есть ли обратный вызов, который запускается после saveAll() на модели или способ реализовать такое поведение?

Может быть, afterSave() уже делает это?

В частности, я хотел бы запустить несколько конкретных методов, но только после того, как связанные элементы были сохранены и только если родительский элемент является вновь сохраненным экземпляром.

Что-то вроде аргумента $created , переданного afterSave() , очевидно, кажется идеальным, но я, по крайней мере, на 90% уверен, что afterSave() вызывается на модели после первоначального сохранения – что, как я понимаю, должно произойти до того, модели сохраняются (чтобы у них было что-то в поле FK).

Что вы предлагаете для получения такого поведения?

Не существует обратного вызова для Model::saveAll() встроенного в CakePHP, но я считаю, что вы можете переопределить этот метод на модели, чтобы создать свой собственный, например:

 // In your Model class... function saveAll($data = null, $options = array()) { parent::saveAll($data, $options); $this->afterSaveAll(); // Your new custom callback. } function afterSaveAll() { // Callback code. } 

В настоящее время я не уверен, как создать поведение переменной $created аналогичное тем, что имеет Model::afterSave() .

afterSave () как save () …

его вызов для каждой модели, saveall – это просто foreach с save (), поэтому в каждой модели вызывается функция afterSave, которая вызывается окончательной функцией save ()

Разве вы не можете просто сделать что-то вроде этого:

 if($this->Recipe->saveAll($this->data)) { //Do some stuff and checking for new insert. $this->Recipe.doSomeStuff(); $this->redirect('/recipes'); } 

Возможно, вы можете сказать, что это созданный элемент, потому что вы не будете передавать идентификатор. Я не знаю, потому что вы не отправили никакого кода.