Вызов на телефон функции участника () на ноль - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь сохранить запись телефона, используя отношения один к одному.

public function store(Request $request) {

    $user= auth()->user(); 

    $phone= new Phone();

    $phone->cellno= request('cellno');

    $user->phone()->save($phone); 
    return redirect('/phones');
}

screenshot

1 Ответ

0 голосов
/ 01 апреля 2020

Рекомендуемый способ получения аутентифицированного пользователя указан в документации .

Строка:

$user = auth()->user(); 

Должно быть:

$user = Auth::user();

И не забудьте использовать класс Auth:

use Illuminate\Support\Facades\Auth;

Объяснение:

Методы auth() или user() недоступны в вашем текущем контексте, поэтому почему $user будет null, если ни один из них не был найден.

Редактировать:

Аутентификация также вернет ноль, если ни один пользователь не аутентифицирован, вы должны следовать документации, предоставленной ниже, для ее реализации. Затем вы можете обезопасить свои маршруты .

Обычно у вас есть два варианта:

a) Добавить промежуточное ПО в спецификации маршрута:

Route::resource('phones' , 'PhoneController')->middleware('auth');

b) Добавить промежуточное ПО в конструкцию класса (рекомендуется для контроллеров)

public function __construct()
{
    $this->middleware('auth');
}

После этого, если нет аутентифицированного пользователя, доступ будет ограничен.

...