Перейти к содержимому


Срабатывание вычисления при только при заполненности поля связи


Сообщений в теме: 3

#1 saas_avtoprokat

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 09 Январь 2018 - 11:52

Проблема: Хочу сделать так, чтобы при создании записи в таблице финансы вычисление проверяло, заполнено ли поле 'Привязка к прокату' (тип поля - связь) и если оно заполнено, то подтягивало через это поле значение в поле Автомобиль этой же таблицы - выполняло эту строчку: $line['Автомобиль'] = $line['Привязка к прокату']['Автомобиль'];
А если поле 'Привязка к прокату' не заполнено, то значение, которое в ручную установили в поле Автомобиль должно остаться неизменным...

сейчас написал такой код:

if ($line['Привязка к прокату'] == "") {
}
if ($line['Привязка к прокату'] != "") {
$line['Автомобиль'] = $line['Привязка к прокату']['Автомобиль'];
}

Работает неправильно, т.к. если при создании записи не заполнили поле Привязка к прокату, то при первом сохранении, установленное в поле Автомобиль значение скидывается.
Есть идеи?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Январь 2018 - 12:18

Первое условие вообще лишнее, оно не играет никакой роли. По второму как бы должно работать, но возможно преобразование типов работает не так как ожидается. Поэтому лучше писать точнее, например так:

if (isset($line['Привязка к прокату']['Автомобиль'])) {
    $line['Автомобиль'] = $line['Привязка к прокату']['Автомобиль'];
}


#3 saas_avtoprokat

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 10 Январь 2018 - 16:59

Да, благодарю. Это именно то, что надо. А расскажите, как это работает. Я только учусь кодингу просто.
В if Же не задано никаких условий?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2018 - 17:41

Как это не задано? Я поставил условие на проверку существования значения, которое возможно только если выбрать связь. См. isset





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных