如何在laravel的控制器中获取登录用户ID的值?

时间:2016-12-10 06:28:47

标签: 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');

}

dd在检查用户是否已登录后显示其他详细信息。

有没有办法从默认创建的用户表中获取登录用户的用户ID。

谢谢!

2 个答案:

答案 0 :(得分:1)

问题是您正在调用$('#idd1').toggle(800, function() { var isHidden = $('#idd1').is(':hidden'); updateButtonText(isHidden); saveToLocalStorage('myTestLS', { isHidden: isHidden }) }); function updateButtonText(isHidden) { var btnText = (isHidden ? 'Show' : 'Hide') + ' Top Account Console'; $('#btn1').text(btnText); } function saveToLocalStorage(key, value) { localStorage.setItem(key, typeof(value) === 'object' ? JSON.stringify(value) : value.toString()) } ,但$cart->product_id变量未定义为我所见。 PHP不知道该怎么做,因为你尝试为它分配一个属性,PHP假设你希望$cart成为一个类,因此“从空值创建默认对象”消息。

除此之外,您可以通过使用中间件对您的用户进行身份验证以及您的Eloquent模型上的关系来改进您的代码,这样您就不会手动分配关系ID。

答案 1 :(得分: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