попытка получить свойство не объекта в Laravel 4

Я использую Laravel 4 и пытаюсь передать информацию, если пользователь вошел в систему. Если пользователь не вошел в систему, я хочу отобразить что-то еще в виде простого текста.

Контроллер книг

public function showIndex() { 

    $user_information = UsersInformation::find(Auth::user()->id);

    return View::make('book.index', array('pageTitle' => 'Book your appointment',  'user_information' => $user_information));
}

Я попытался добавить isset() прямо над переменной $user_information, но получил это сообщение об ошибке.

Cannot use isset() on the result of a function call 
   (you can use "null !== func()" instead)

Index.blade.php

        @if (isset($user_information->first_name))
           <p> You already have the 1 step complete let's move on to the second step!</p>
        @else
           <p>first step. let's create a login name and let's get to know you better</p>
        @endif

добавил здесь isset для имени, потому что, если они получают доступ к своей учетной записи, они должны указать имя.

Я попытался добавить isset следующим образом:

             if (isset(UsersInformation::find(Auth::user()->id))) {
                $user_information = UsersInformation::find(Auth::user()->id);
             }

Я, конечно, пытался использовать рекомендуемый синтаксис, но затем снова получил ошибку «Попытка получить свойство не объекта».


person Lynx    schedule 03.09.2013    source источник
comment
Покажите нам фактический код, в котором вы используете isset(), а также любой другой соответствующий код.   -  person Sverri M. Olsen    schedule 03.09.2013
comment
Я отредактировал свой вопрос. Спасибо!   -  person Lynx    schedule 03.09.2013


Ответы (1)


Сначала вам нужно проверить, вошел ли пользователь в систему:

public function showIndex() { 

    if (Auth::check())
    {
        $user_information = UsersInformation::find(Auth::user()->id);
    }
    else
    {
        $user_information = false;
    }

    return View::make('book.index', array('pageTitle' => 'Book your appointment',  'user_information' => $user_information));
}

И тогда вы просто:

@if ($user_information and $user_information->first_name)
   <p> You already have the 1 step complete let's move on to the second step!</p>
@else
   <p>first step. let's create a login name and let's get to know you better</p>
@endif
person Antonio Carlos Ribeiro    schedule 03.09.2013
comment
Похоже так и получилось. Спасибо! - person Lynx; 03.09.2013