我的Laravel有一种奇怪的行为。
一切都运行得很好,但后来我决定将名称“user_id”更改为“seller_id”
我也正确地更改了控制器中的列名称
public function transactions(){
return $this->hasMany('App\Transaction', 'seller');
}
然后我成功登录,并在一个视图中有这一行:
auth()->user->id
返回我的错误:
“Undefined property:Illuminate \ Auth \ AuthManager :: $ user
我在互联网上看到我没有登录的错误和接缝,但我是,任何线索?
由于
答案 0 :(得分:8)
您指出的错误与您的更改无关。
您可以参考文档here,以检索您可以调用的经过身份验证的用户:
// Get the currently authenticated user...
$user = Auth::user();
或
// Using helper function
$user = auth()->user()
因此,要检索用户的ID:
$id = Auth::id();
或者
$id = auth()->id();
或者
$id = Auth::user()->id;
或者
$id = auth()->user()->id;
此外,您需要将关系函数更改为per docs:
public function transactions(){
return $this->hasMany('App\Transactions', 'seller_id');
}
答案 1 :(得分:0)
最好总是用“ id”来命名主键,因为这在laravel中是默认的。当您在另一个表中有外键时,它将在您的情况下引用'table_name'_id user_id