Laravel更改col名称“user_id”会使$ user未定义?

时间:2018-01-31 00:20:52

标签: php laravel

我的Laravel有一种奇怪的行为。

一切都运行得很好,但后来我决定将名称“user_id”更改为“seller_id”

我也正确地更改了控制器中的列名称

public function transactions(){
    return $this->hasMany('App\Transaction', 'seller');
}

然后我成功登录,并在一个视图中有这一行:

auth()->user->id

返回我的错误:

  

“Undefined property:Illuminate \ Auth \ AuthManager :: $ user

我在互联网上看到我没有登录的错误和接缝,但我是,任何线索?

由于

2 个答案:

答案 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