我添加了控制器的顶部:
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。
谢谢!
答案 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