Yii2 aftersave не работает

Содержание
  1. Yii Framework
  2. afterSave — узнать не поменялось ли конкретное поле
  3. afterSave — узнать не поменялось ли конкретное поле
  4. Re: afterSave — узнать не поменялось ли конкретное поле
  5. Re: afterSave — узнать не поменялось ли конкретное поле
  6. Re: afterSave — узнать не поменялось ли конкретное поле
  7. Re: afterSave — узнать не поменялось ли конкретное поле
  8. Re: afterSave — узнать не поменялось ли конкретное поле
  9. Yii Framework
  10. сохранение модели в afterSave()
  11. сохранение модели в afterSave()
  12. Re: сохранение модели в afterSave()
  13. Re: сохранение модели в afterSave()
  14. Re: сохранение модели в afterSave()
  15. Re: сохранение модели в afterSave()
  16. Re: сохранение модели в afterSave()
  17. Re: сохранение модели в afterSave()
  18. Re: сохранение модели в afterSave()
  19. Re: сохранение модели в afterSave()
  20. Re: сохранение модели в afterSave()
  21. Re: сохранение модели в afterSave()
  22. Re: сохранение модели в afterSave()
  23. Re: сохранение модели в afterSave()
  24. Yii2 afterSave
  25. Как в yii заставить работать afterSave в Поведениях?
  26. Yii Framework
  27. Обертывание в транзакцию для пары afterSave и afterDelete
  28. Обертывание в транзакцию для пары afterSave и afterDelete
  29. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  30. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  31. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  32. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  33. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  34. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  35. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  36. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  37. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  38. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  39. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  40. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  41. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  42. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  43. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  44. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  45. Re: Обертывание в транзакцию для пары afterSave и afterDelete
  46. Re: Обертывание в транзакцию для пары afterSave и afterDelete

Yii Framework

afterSave — узнать не поменялось ли конкретное поле

afterSave — узнать не поменялось ли конкретное поле

Вопрос по yii2 framework.

Как узнать в afterSave, поменялось ли значение поля?

Работаю с нотификейшинами выдавать сообщение, когда конкретное поле изменилось.

Вот такой схемой пользуюсь, при insert все норм, узнаю нужные данные

Читайте также:  Как узнать когда сломался роутер

Re: afterSave — узнать не поменялось ли конкретное поле

Сообщение caHek2x » 2016.11.11, 14:11

BaseActiveRecord говорит следующее

$changedAttributes = [];
foreach ($values as $name => $value) <
$changedAttributes[$name] = isset($this->_oldAttributes[$name]) ? $this->_oldAttributes[$name] : null;
$this->_oldAttributes[$name] = $value;
>
$this->afterSave(false, $changedAttributes );

вот и смотрите этот массив .
if (isset($changedAttributes[‘status’]).

Re: afterSave — узнать не поменялось ли конкретное поле

caHek2x писал(а): BaseActiveRecord говорит следующее

$changedAttributes = [];
foreach ($values as $name => $value) <
$changedAttributes[$name] = isset($this->_oldAttributes[$name]) ? $this->_oldAttributes[$name] : null;
$this->_oldAttributes[$name] = $value;
>
$this->afterSave(false, $changedAttributes );

вот и смотрите этот массив .
if (isset($changedAttributes[‘status’]).

Re: afterSave — узнать не поменялось ли конкретное поле

Сообщение caHek2x » 2016.11.11, 14:24

Re: afterSave — узнать не поменялось ли конкретное поле

Re: afterSave — узнать не поменялось ли конкретное поле

Сообщение caHek2x » 2016.11.11, 14:41

вы обращаетесь к save:
1. save .
2. если модель старая то save обращается к update
3. в update валидация, если все ок то далее updateInternal
3. если не ок то выход и ваш save вернет false
4. в updateInternal дергается beforeSave
5. если beforeSave вернуло true то выход и ваш save вернет false
5. если beforeSave вернуло false то далее проверяем есть ли измененные атрибуты.
6. если нет измененных то дергаем afterSave с changedAttributes = пустым массивом
6. если изменилось то сохраняет и afterSave .

причем тут afterRefresh ? он дергается только после отработки метода refresh() . ничего общего с update не имеет . или я не заметил .

Источник

Yii Framework

сохранение модели в afterSave()

сохранение модели в afterSave()

Сообщение t3rmit » 2014.10.03, 11:24

Re: сохранение модели в afterSave()

Сообщение HQ0 » 2014.10.03, 11:31

Re: сохранение модели в afterSave()

Сообщение t3rmit » 2014.10.03, 11:33

Re: сохранение модели в afterSave()

Сообщение t3rmit » 2014.10.03, 11:43

Re: сохранение модели в afterSave()

Сообщение Faenir » 2014.10.03, 12:02

Не понимаю, зачем хранить ID записи в поле url.

Лучше подключите в модели https://github.com/yiisoft/yii2/blob/ma . havior.php для поля url и напишите геттер в модели:

Re: сохранение модели в afterSave()

Сообщение HQ0 » 2014.10.03, 12:02

Re: сохранение модели в afterSave()

Re: сохранение модели в afterSave()

Сообщение HQ0 » 2014.10.03, 13:04

Re: сохранение модели в afterSave()

Re: сохранение модели в afterSave()

Сообщение t3rmit » 2014.10.03, 13:27

Re: сохранение модели в afterSave()

Сообщение Faenir » 2014.10.03, 14:14

Re: сохранение модели в afterSave()

Сообщение t3rmit » 2014.10.03, 15:53

Читайте также:  Узпу с 12 9 не работает

Re: сохранение модели в afterSave()

Сообщение Faenir » 2014.10.03, 21:14

Потому что момент отработки SluggableBehavior записи в БД еще нет и ID — соответствено тоже.

Вообщем можно и в afterSave это сделать.
Нужно использовать не save() а updateAttributes() — он не вызывает afterSave().
Примерно так:

Источник

Yii2 afterSave

Дата публикации: 2017-05-18

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы познакомимся с интересным методом Yii2 afterSave, который может быть достаточно полезен при сохранении данных в БД. Также мы узнаем, как отличить сохранение новой записи (isnewrecord) от обновления прежней.

Итак, метод afterSave — что за метод и где он может пригодиться? Собственно, ответ на первый вопрос понятен из названия самого метода, который можно перевести как «после сохранения». Действительно, данный метод вызывается после метода save, который осуществляет сохранение данных в БД.

Вполне возможно вам может потребовать выполнить некоторые действия после операции сохранения. Например, вам может банально потребоваться записать в сессию сообщение об успешном сохранении записи, чтобы затем вывести это сообщение в шаблоне. Собственно, давайте именно эту задачу и решим.

В качестве примера возьмем форму редактирования записей контроллера Post, если помните, ее мы сгенерировали с помощью модуля Gii в одной из предыдущих статей. Давайте откроем модель Post и допишем в нее метод afterSave:

Фреймворк Yii2. Быстрый старт

Получите курс и узнайте, как с помощью фреймворка Yii2 разрабатывать веб-приложения на примере блога

Источник

Как в yii заставить работать afterSave в Поведениях?

Такая ситуация сложилась.
У меня есть модель Service, где есть такой код:

Оба поведения прикрепляю к классу, но по какой то причине выходит только «Илья Муромец» из afterSave внутри класса. Проворачивал то же самое с beforeSave, выводились все три надписи, в чем может быть проблема?

P.S. Конечно же в реальном примере в afterSave должны выполняться более интересные задачи.

Добавлено через 26 минут
Понял ошибку — public нужно ставить в поведениях

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как в Yii в поведениях обращаться к статическому методу?
Здравия! К обычным методам класса в поведении обращался так.. $this->method(); А как к.

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта — все дело в.

Читайте также:  Ополаскиватель для посудомоечной машины как настроить

Как заставить работать do while
Печатает пока 100 строк не будут заполнены, нужно при вводе символа n закончить принятие данных и.

Как заставить работать ? 🙂
Form1.label6.caption := FloatTostr (dosp); if Dosp 0

как заставить работать QT
Только установила QT. Пытаюсь скомпилировать консольную программу: #include int.

как заставить работать localhost?
Попросили меня на PHP написать мат. часть программы. Я, как умная Маша, поставил IIS, но на команду.

Как заставить работать
Здравствуйте! У меня есть программа которая vector найдет номер максимального элемента.

Источник

Yii Framework

Обертывание в транзакцию для пары afterSave и afterDelete

Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение MuratYMT » 2016.12.03, 17:35

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение caHek2x » 2016.12.03, 17:41

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение MuratYMT » 2016.12.03, 17:51

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение caHek2x » 2016.12.03, 17:55

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.03, 20:42

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение caHek2x » 2016.12.03, 21:23

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.03, 21:34

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение MuratYMT » 2016.12.04, 17:01

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.04, 17:13

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение caHek2x » 2016.12.04, 17:17

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.04, 17:22

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение MuratYMT » 2016.12.04, 18:45

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.04, 18:47

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение MuratYMT » 2016.12.04, 18:54

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.04, 18:59

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение Nerf » 2016.12.04, 20:46

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение zelenin » 2016.12.04, 20:49

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение caHek2x » 2016.12.04, 20:53

Re: Обертывание в транзакцию для пары afterSave и afterDelete

Сообщение Nerf » 2016.12.04, 21:14

Источник

Оцените статью