我的用户模型有3个字段:username,password和category_id 所以当我认证auth对象将拥有所有3个变量,但我想添加其他模型上的类别的名称 我得像:
$category = Category::find(Auth::user()->category_id);
$category_name = $category->name;
所以问题是我可以将$ category_name添加到Auth :: user()对象中,以便每次像这样记录时都要检索它:
Auth::user()->category_name
我在登录时尝试Session :: put(" category_name","类别1和#34;)但是当我关闭窗口并在最后关闭的窗口打开它时,它会删除那个变量。 我希望存储变量,因为登录人员,直到人员注销,但如果此人已登录并关闭窗口,然后该人员重新打开页面,则必须填写变量
答案 0 :(得分:0)
试试这个
在您的用户模型中添加以下功能
编辑试试这个
public function category_name()
{
return \Cache::remember('category_' . $this->id , 60, function()
{
return $this->belongsTo('App\Category')->get();
});
}
现在每次使用
Auth::user()->category_name
您将拥有名称
这将生成视图中的名称
{{ Auth::user()->category_name }}
注意:这段代码不是最好的解决方案,即使它适合你,这是开放的更改,我只是想让你明白如果你想通过{{访问某些东西1}}您必须在用户模型中添加Auth::user()->getname
顺便告诉我们您在模型中设置的关系?因为那样会更容易
一个例子 如果你在你的模型中有这样的东西(hasone)
getname function
你可以这样做
public function category() {
return $this->hasOne('category');
}
答案 1 :(得分:0)
您可以使用Eloquent Accessors
在用户模型中
public function setCategoryNameAttribute()
{
$categoryID = $this->category_id;
$category = Category::find($categoryID);
return $category->name;
}
您可以访问类别名称,如
Auth::user()->category_name