Как проверить заполнено ли поле в профиле юзера?
Нужно было проверить заполнено ли у пользователя поле Город, и если да — записать значение в сессию.
Сделал по-быстрому так:
Как можно сделать поизящнее-покошернее?
Сделал по-быстрому так:
$user = $modx->getUser();
$profile = $user->getOne('Profile');
$autor = $profile->get('city');
if ($autor != ''){
$_SESSION['gorod'] = $profile->get('city');
}Работает, но сердцем чую, что это порно…Как можно сделать поизящнее-покошернее?
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Можно и твой вариант. Но как ты правильно сказал вот это $autor = $profile->get('city'); точно похоже на порно.
Следуя твоему стилю можно было бы написать так
Я предполагал (наивно) что в аналогичном участке кода у меня, каждая следующая строка работает с переменной из предыдущей строки. А в твоих трёх строках — пять никак с друг другом не связанных переменных. $page $car $user $autor $profile
Или моя картина мира кардинально неправильна? :))
Именно условие if ($autor != '') необходимо, т.к. если Город заполнен, он должен записываться в сессию, а если нет — запускается скрипт геолокации через else
Просто я предполагаю, что есть другой, более грамотный способ проверки поля на заполненность, нежели простое сравнение с пустой строкой?
Но можно и с пустой строкой. Смысл одинаковый.