MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

Метод afterUpdate

Ответов: 6
Игорь
05.10.2015 11:06

Сообщение: Здравствуйте! при обновлении страницы работаю с методом afterUpdate. Столкнулся с тем что не создается запись в другую таблицу. Но если делать запрос на вставку в таблицу той модели в которой идет запрос , то запись создается. Делаю так - $this->db->query("insert into pages set name = '{$name}' ");

Прочтений: 1689
Ответов: 6
Admin
05.10.2015 11:24

Игорь, добрый день, метод afterUpdate (и аналогичные ему) исполняется после того как запись была обновлена и новые данные уже находятся в таблице. Если нужно как-то изменить данные перед вставкой в таблицу, то лучше применить метод beforeUpdate, пример есть тут http://mv-framework.ru/nastroika-modeli/

Если вы изменяете данные в таблице прямым запросом (как в вашем примере), то все должно работать при запросе в любую таблицу.

Если мы не совсем правильно поняли вопрос, добавьте пример кода метода beforeUpdate и в какой моделе он вызывается.

Игорь
05.10.2015 13:09

Хорошо, но как обновить данные связи многие ко многим ? я передаю строку вида 1,2,3 но она не меняет отношение... как быть ?

Admin
05.10.2015 13:40

Многие ко многим обновляются системой автоматически. Если в модели есть такое поле (или несколько полей),и оно правильно настроено, то система сама его обновит и заполнит связующую таблицу.

Игорь
05.10.2015 13:52

Так вот если это поле редактировать то да все нормально.
Но если вызываю метод beforeUpdate и в нем делаю return $fields['keywords'] = '1,2,3'; то изменения не происходят связей.
Скажите как в методе изменить это поле связей ? ведь возвращаю я правильную строку, а изменений нет .

в моде определение связей 

array("Текстовые блоки", "many_to_many", "keywords", array("related_model" => "Keywords",
                                             "linking_table" => "pages_keywords")),
Admin
05.10.2015 18:46

Да, теперь понятно, обновления действительно не произойдет, дело в том, что многие ко многим - поле как бы виртуальное, ячейки с его значением в родительской модели нет и значение в настоящий момент нельзя обновить "на лету" в beforeUpdate().

Альтернативным вариантом может стать такой код в afterUpdate($id, $new_fields)

$record = $this -> findRecordById($id);
$record -> keywords = '1,2,3';
$record -> update();
Игорь
06.10.2015 03:07

Спасибо большое! За быстрый ответы и за внимание.

Ответить на вопрос
Ответить
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться