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

如何在laravel中获取控制器中登录用户id的值?,laravel,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 = $p

在我的控制器顶部,我添加了:

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。


谢谢

问题是您正在调用
$cart->product\u id
,但据我所知,
$cart
变量没有定义。PHP不知道该做什么,因此,由于您尝试为其分配一个属性,PHP假定您希望
$cart
成为一个类,因此出现了“从空值创建默认对象”消息

除此之外,还可以通过使用中间件来验证用户和雄辩模型上的关系来改进代码,这样您就不用手动分配关系ID了。

试试这样, 你忘了给购物车对象加上首字母

$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

您应该使用中间件来保护路由,而不是在控制器操作中检查用户是否经过身份验证。