- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Изучаю Ларавел, дошел до темы - Вывод переменных после проверки на существование.
В контроллере
В шаблоне два варианта
В итоге получаю
1 СПб
Что за 1 ?
НО если в контроллере сделать переменную пустой
То на фронте останется только - 1.
Где я ошибаюсь? По идее ожидалось два раза вывод "СПб", а если пустая переменна - "Москва"
В итоге даже так, если в контроллере сделать переменную пустой, то и на фронте пустота
ГДе я ошибаюсь? Вроде делаю все как в доках https://laravel.ru/docs/v5/blade#отображение-5
Пока нужной логики добился только от варианта
Это приводит к булево.
Оффтоп.
Почему Вы решили изучать лару?
вам бы php сперва подучить
https://www.php.net/manual/ru/function.empty.php
https://www.php.net/manual/ru/function.isset.php
isset проверяет существует ли переменная и ее значение не null. empty проверяет пустое ли значение у переменной. к пустым относятся:
"" (пустая строка)
0 (целое число)
0.0 (число с плавающей точкой)
"0" (строка)
NULL
FALSE
array() (пустой массив)
можно решить и вот так:
да и документация эта уже устарела. она для 5-й версии, сейчас уже актуальна 7 версия
https://laravel.com/docs/7.x/blade
Я не пойму, почему <p>{{ $city or 'Москва' }}</p> выводит 1 ?
выше уже ответили. при использовании OR вам возвращается результат проверки вашего условия (true, false) а не значения переменных. и если этот результат true/false перевести в строку, то получится 1 или 0
https://www.php.net/manual/ru/language.operators.logical.php
Как тогда понять эти данные из доков (пусть и к 5 версии), https://laravel.ru/docs/v5/blade#отображение-5
Вместо написания тернарного оператора Blade позволяет вам использовать такое удобное сокращение, которое будет скомпилировано в тернарный оператор, приведённый ранее:
{{ $name or 'Default' }}
Если переменная $name имеет значение, то оно будет отображено, иначе будет выведено слово Default .
Как тогда понять эти данные из доков (пусть и к 5 версии), https://laravel.ru/docs/v5/blade#отображение-5
Вместо написания тернарного оператора Blade позволяет вам использовать такое удобное сокращение, которое будет скомпилировано в тернарный оператор, приведённый ранее:
Если переменная $name имеет значение, то оно будет отображено, иначе будет выведено слово Default .
возможно, в версии 5.0-5.3 фреймворка так и работало. а в одной из следующих версии поменяли поведение, чтобы не путать разработчиков. начиная с версии 5.4 такого примера нет в документации, но появились @empty и @isset
рекомендую пользоваться актуальной документацией. фреймворк довольно часто обновляется и многие вещи в нем сильно меняются https://laravel.com/docs/7.x/blade