如何在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
您应该使用中间件来保护路由,而不是在控制器操作中检查用户是否经过身份验证。