Как проверить заполнено ли поле в профиле юзера?

Нужно было проверить заполнено ли у пользователя поле Город, и если да — записать значение в сессию.
Сделал по-быстрому так:

$user = $modx->getUser();
$profile = $user->getOne('Profile');
$autor = $profile->get('city');

if ($autor != ''){

$_SESSION['gorod'] = $profile->get('city');

}
Работает, но сердцем чую, что это порно…

Как можно сделать поизящнее-покошернее?
anatol
28 апреля 2015, 09:24
modx.pro
1 178
0

Комментарии: 7

Сергей Шлоков
28 апреля 2015, 12:58
+1
Ну быстрее будет так
$query = $modx->newQuery('modUserProfile', array('internalKey'=> $modx->user->get('id')));
$query->select('city');
//Условие if ($autor != '') думаю лишнее
$_SESSION['gorod'] = $modx->getValue($query->prepare());
Можно и твой вариант. Но как ты правильно сказал вот это $autor = $profile->get('city'); точно похоже на порно.
Следуя твоему стилю можно было бы написать так
$page = $modx->getUser();
$car = $user->getOne('Profile');
$autor = $profile->get('city');
...
    anatol
    28 апреля 2015, 13:22
    0
    $page = $modx->getUser();
    $car = $user->getOne('Profile');
    $autor = $profile->get('city');
    Вот это вообще не понял :)))) Извини дилетанта.

    Я предполагал (наивно) что в аналогичном участке кода у меня, каждая следующая строка работает с переменной из предыдущей строки. А в твоих трёх строках — пять никак с друг другом не связанных переменных. $page $car $user $autor $profile

    Или моя картина мира кардинально неправильна? :))
      Сергей Шлоков
      28 апреля 2015, 13:26
      0
      Я имел ввиду логику называния переменных. В переменную автор сохраняется значение поля Город. :)
        anatol
        28 апреля 2015, 13:47
        0
        уфф… напугал… :)
    anatol
    28 апреля 2015, 13:14
    0
    Прошу прощения, я изначально неправильно обозначил задачу.
    Именно условие if ($autor != '') необходимо, т.к. если Город заполнен, он должен записываться в сессию, а если нет — запускается скрипт геолокации через else

    Просто я предполагаю, что есть другой, более грамотный способ проверки поля на заполненность, нежели простое сравнение с пустой строкой?
      Сергей Шлоков
      28 апреля 2015, 13:28
      +1
      Просто я предполагаю, что есть другой, более грамотный способ проверки поля на заполненность, нежели простое сравнение с пустой строкой?
      Есть вот такой
      if (!empty($autor))
      Но можно и с пустой строкой. Смысл одинаковый.
        anatol
        28 апреля 2015, 13:46
        0
        ок, спс
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7