2016-12-10 3 views
1

Начало моего контроллера я добавил:Как получить значение зарегистрированного идентификатора пользователя в контроллере в laravel?

use Auth; 

функция в мой контроллер

public function details($id) 
{ 
    if(Auth::check())  
    { 
     $user = Auth::user(); 
     $product = Product::find($id);  

     $cart->product_id = $product->id; 
     $cart->category_id = $product->category_id; 
     $cart->user_id = $user->id; 

     dd($cart->user_id); //check if its storing the value 
    } 
    else { 
    return redirect()->route('login'); 
    } 
} 

, когда я запускаю это я получаю ошибку:

Creating default object from empty value 

Если удалить $ user- > id выводится ошибка.

Я пытался добавить конструктор также, но все-таки получил ту же ошибку

public function __construct() { 

    $this->middleware('auth'); 

} 

дд показывает другие детали после проверки, если пользователь вошел в систему.

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

Спасибо!

+0

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

ответ

1

Проблема заключается в том, что вы вызываете $cart->product_id, но переменная $cart не определена, насколько я могу видеть. PHP не знает, что делать, поэтому, поскольку вы пытаетесь присвоить ему свойство, PHP предполагает, что вы хотите, чтобы класс $cart был классом, а значит, сообщение «Создание сообщения по умолчанию из пустого значения».

Кроме этого, код может быть улучшен с помощью промежуточного программного обеспечения для аутентификации ваших пользователей и отношений на ваших моделях Eloquent, чтобы вы не вручную назначали идентификаторы отношений.

+0

Да, глупо меня. Спасибо :) – Phoenix

1

Попробуйте, как это, Вы забыли инициалами корзину объекта

$cart = new Cart; 
$cart->product_id = $product->id; 
$cart->category_id = $product->category_id; 
$cart->user_id = $user->id; 

dd($cart->user_id); //check if its storing the value 
+0

Я глупо меня. Благодаря :) – Phoenix

Смежные вопросы