переменная laravel печатает 1 вместо строки - PullRequest
0 голосов
/ 12 марта 2019

При печати переменной модели во входном значении этот код:

value="{{ old('name',  $event->name or null) }}"

печатает: 1

и этот код:

value="{{ old('name',  isset($evento->name) ? $evento->name : null) }}"

печатает: "фактическое значение"

Кто-нибудь знает почему?Первый пример - вспомогательная работа, если я правильно читаю документы.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Если вы выполните тест и попытаетесь сбросить значение, возвращаемое $event->name or null, вы увидите, что оно повторяет true, в вашем html это переводится как 1.

Ваш второйМетод может быть переведен в псевдокод:

if (isset(...))
    return name
else
    return null

Это фактически вернет значение name или null.

Зависит от PHP (7.0) / Laravel (5.5) версию вы можете написать двумя короткими способами.

// PHP 7.0
$evento->name ?? null

// Laravel 5.5
optional($evento)->name
0 голосов
/ 12 марта 2019

Ваш код ведет себя так, потому что в вашем первом коде вы в основном печатаете логическое выражение.

$event->name or null

Возвращает логическое значение, поэтому 0 или 1. С другой стороны, во второй версии кода вы используете троичный оператор, который выполняет следующее:

  1. Проверьте, выходит ли $ evento-> name
  2. Если да, выведите $ evento-> name
  3. Если нет возврата ноль
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...