Автор Тема: Нужно не нулевое значение  (Прочитано 306 раз)

28 Сентябрь 2019, 17:50:54
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте.
Есть такая проблемка:
Добавил к товару несколько своих полей.
Одно из них (int(5)) должно быть обязательно не нулевым. Не "not null", а больше нуля.
При заполнении карточки иногда сотрудники с дырявой головой пропускают это поле и сохраняется ест-нно 0.
'required' => true не помогает, потому что внесенный в поле ноль "проходит", не "проходит" только пустое поле.
По умолчанию поставить 1, тоже не вариант - будут пропускать эту единичку.
Вопрос:
как не дать сохранить "пусто" и 0?
Спасибо.
28 Сентябрь 2019, 17:57:58
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
28 Сентябрь 2019, 18:01:21
Ответ #2
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В чем проблема? Проверяйте перед сохранением
Цитировать
empty — Проверяет, пуста ли переменная
 Следующие значения воспринимаются как пустые:
    "" (пустая строка)
    0 (целое число)
    0.0 (дробное число)
    "0" (строка)
    NULL
    FALSE
    array() (пустой массив)
    $var; (переменная объявлена, но не имеет значения)
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
28 Сентябрь 2019, 18:16:19
Ответ #3
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
if (is_int($var) && $var > 0)
В чем проблема? Проверяйте перед сохранением
Это все понятно, но на мой взгляд "не красиво" вставлять в класс, где идет "универсальная" обработка любых полей (на вскидку в данном случае Validate) проверку на конкретное поле, тем более таких полей в теории может быть много.
28 Сентябрь 2019, 20:10:07
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере проверяют обычно.