Подскажите пожалуйста, можно ли в вычислении отследить предыдущее значение поля.
Т.е. при изменении поля срабатывает некоторое ВЫЧИСЛЕНИЕ, в котором надо знать и текущее (уже измененное) значение поля и предыдущее.
1
Отследить предыдущее значение поля
Автор z3dom, 12 нояб. 2018 16:19
Сообщений в теме: 6
#1
Отправлено 12 Ноябрь 2018 - 16:19
#2
Отправлено 12 Ноябрь 2018 - 20:58
Старое значение поля хранится в массиве $event['changed'][ID_ПОЛЯ]['old'], ID_ПОЛЯ только цифры из ID поля из БД. Например, при изменении поля f1234 его старое значение будет в массиве $event['changed'][1234]['old'].
Новое значение поля хранится в $line[ИМЯ_ПОЛЯ], например, $line['Территория']
Новое значение поля хранится в $line[ИМЯ_ПОЛЯ], например, $line['Территория']
#3
Отправлено 13 Ноябрь 2018 - 13:32
Спасибо!!! Буду тестить!
#4
Отправлено 20 Ноябрь 2019 - 12:05
Правильно ли понимаю, что изменение поля add_time нужно отслеживать через $event['changed'][add_time]['old']?
Может быть у него какое-то другое название поля в данном варианте использования, потому что сейчас отследить старое значение поля не получается.
Может быть у него какое-то другое название поля в данном варианте использования, потому что сейчас отследить старое значение поля не получается.
#5
Отправлено 20 Ноябрь 2019 - 12:10
Вопрос решился. Номер поля можно посмотреть в адресной строке при редактировании
#6
Отправлено 20 Ноябрь 2019 - 13:51
Столкнулся с проблемой, которая очень напоминает баг, но возможно что и я где-то туплю.
Есть таблички:
1) test1 (поле ID)
2) test2(поле связи test1 (f15351), ссылающееся на ID таблицы test1, поле comment)
Задача - в таблице test2 "отловить" изменение поля test1 и вытащить его старое значение.
Вычисление:
Соответственно при изменении поля test1 постоянно видим в комментах сообщение:
Текущий ID 1, старый ID 3
Текущий ID 4, старый ID 1
и т.д.
ПРОБЛЕМА:
если ссылаться на диапазон полей таблицы test1 от 1 до 9 - то все работает отлично, но как только ссылаемся на двух или трехзначные ID шники - то в старом значении ID сохраняется только ПЕРВАЯ ЦИФРА от ID.
Вот пример:
(вот так работает нормально)
Текущий ID 1, старый ID 3
Текущий ID 5, старый ID 1
Текущий ID 9, старый ID 5
(пошли двузначные и трехзначные)
Текущий ID 15, старый ID 9
Текущий ID 10, старый ID 1
Текущий ID 16, старый ID 1
Текущий ID 923, старый ID 1
Текущий ID 14, старый ID 9
Текущий ID 12, старый ID 1
Баг или ошибка?
Есть таблички:
1) test1 (поле ID)
2) test2(поле связи test1 (f15351), ссылающееся на ID таблицы test1, поле comment)
Задача - в таблице test2 "отловить" изменение поля test1 и вытащить его старое значение.
Вычисление:
$line['comment']=""; if($event['changed'][15351]['old']) { $old=$event['changed'][15351]['old']['ID']; $line['comment']="Текущий ID ".$line['test1']['ID'].", старый ID ".$old; } else { $old=$line['test1']['ID'];$line['comment']="Не изменено"; }
Соответственно при изменении поля test1 постоянно видим в комментах сообщение:
Текущий ID 1, старый ID 3
Текущий ID 4, старый ID 1
и т.д.
ПРОБЛЕМА:
если ссылаться на диапазон полей таблицы test1 от 1 до 9 - то все работает отлично, но как только ссылаемся на двух или трехзначные ID шники - то в старом значении ID сохраняется только ПЕРВАЯ ЦИФРА от ID.
Вот пример:
(вот так работает нормально)
Текущий ID 1, старый ID 3
Текущий ID 5, старый ID 1
Текущий ID 9, старый ID 5
(пошли двузначные и трехзначные)
Текущий ID 15, старый ID 9
Текущий ID 10, старый ID 1
Текущий ID 16, старый ID 1
Текущий ID 923, старый ID 1
Текущий ID 14, старый ID 9
Текущий ID 12, старый ID 1
Баг или ошибка?
#7
Отправлено 02 Декабрь 2019 - 15:49
z3dom (20 Ноябрь 2019 - 13:51) писал:
Столкнулся с проблемой, которая очень напоминает баг, но возможно что и я где-то туплю.
Есть таблички:
1) test1 (поле ID)
2) test2(поле связи test1 (f15351), ссылающееся на ID таблицы test1, поле comment)
Задача - в таблице test2 "отловить" изменение поля test1 и вытащить его старое значение.
Вычисление:
Соответственно при изменении поля test1 постоянно видим в комментах сообщение:
Текущий ID 1, старый ID 3
Текущий ID 4, старый ID 1
и т.д.
ПРОБЛЕМА:
если ссылаться на диапазон полей таблицы test1 от 1 до 9 - то все работает отлично, но как только ссылаемся на двух или трехзначные ID шники - то в старом значении ID сохраняется только ПЕРВАЯ ЦИФРА от ID.
Вот пример:
(вот так работает нормально)
Текущий ID 1, старый ID 3
Текущий ID 5, старый ID 1
Текущий ID 9, старый ID 5
(пошли двузначные и трехзначные)
Текущий ID 15, старый ID 9
Текущий ID 10, старый ID 1
Текущий ID 16, старый ID 1
Текущий ID 923, старый ID 1
Текущий ID 14, старый ID 9
Текущий ID 12, старый ID 1
Баг или ошибка?
Есть таблички:
1) test1 (поле ID)
2) test2(поле связи test1 (f15351), ссылающееся на ID таблицы test1, поле comment)
Задача - в таблице test2 "отловить" изменение поля test1 и вытащить его старое значение.
Вычисление:
$line['comment']=""; if($event['changed'][15351]['old']) { $old=$event['changed'][15351]['old']['ID']; $line['comment']="Текущий ID ".$line['test1']['ID'].", старый ID ".$old; } else { $old=$line['test1']['ID'];$line['comment']="Не изменено"; }
Соответственно при изменении поля test1 постоянно видим в комментах сообщение:
Текущий ID 1, старый ID 3
Текущий ID 4, старый ID 1
и т.д.
ПРОБЛЕМА:
если ссылаться на диапазон полей таблицы test1 от 1 до 9 - то все работает отлично, но как только ссылаемся на двух или трехзначные ID шники - то в старом значении ID сохраняется только ПЕРВАЯ ЦИФРА от ID.
Вот пример:
(вот так работает нормально)
Текущий ID 1, старый ID 3
Текущий ID 5, старый ID 1
Текущий ID 9, старый ID 5
(пошли двузначные и трехзначные)
Текущий ID 15, старый ID 9
Текущий ID 10, старый ID 1
Текущий ID 16, старый ID 1
Текущий ID 923, старый ID 1
Текущий ID 14, старый ID 9
Текущий ID 12, старый ID 1
Баг или ошибка?
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных