Отношение Laravel, возвращающее 1 для входного значения

1

У меня есть текстовый ввод:

{{ Form::text('first_name',  $car->basicCustomer->first_name or NULL, ['class' => 'form-control', 'disabled']) }}

Который должен возвращать первое имя, но вместо этого вход имеет значение 1.

Отношения, когда умирают и сбрасываются, возвращаются:

object(Customer)#805 (20) {
  ["connection":protected] "main_site"
  ["fillable":protected] array(8) {
    [0] "title"
    [1] "first_name"
    [2] "last_name"
    [3] "email"
    [4] "telephone_number"
    [5] "address"
    [6] "post_code"
    [7] "company_name"
  }
  ["table":protected] NULL
  ["primaryKey":protected] "id"
  ["perPage":protected] 15
  ["incrementing"] true
  ["timestamps"] true
  ["attributes":protected] array(3) {
    ["first_name"] "John"
    ["last_name"] "Doe"
    ["id"] "19854"
  }
  ["original":protected] array(3) {
    ["first_name"] "John"
    ["last_name"] "Doe"
    ["id"] "19854"
  etc...

Значение на входе всегда равно 1, даже при вызове last_name и т.д.

Любые идеи, что происходит?

EDIT: исправлена ошибка, удача, необходимая для использования, и если проверить, не было ли отношение не равным нулю в другом представлении:

{{ Form::text('first_name', (!$car->basicCustomer ? NULL : $car->basicCustomer->first_name), ['class' => 'form-control', 'disabled']) }}

Это теперь выводит имя, может ли кто-нибудь объяснить, почему:

или NULL

не работает?

  • 0
    Значение или NULL было интерпретировано как условное выражение. И он возвращает истину (1) или ложь (0). «Любая строка» OR NULL возвращала true (1).
Теги:
relationship
laravel-4

1 ответ

1
Лучший ответ

Значение or NULL интерпретируется как условное выражение. И он возвращает true (1) или false (0).

'test' or null :    
boolean true

'' or null :    
boolean false

true or null :
boolean true

false or null :    
boolean false

В вашем случае вы можете использовать оператор ?:.

$string ?: null    

Это более короткая версия для

$string ? $string : null
  • 0
    Интересно, спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню