我想知道如何从用户表中获取刀片中数据库的数据:
{{ Auth::user()->name }}
我有表user_settings
我想通过记录的用户ID从此表中获取记录,如下所示:
{{ UserSettings::user()->my_field }}
我该怎么做?
答案 0 :(得分:1)
在您的刀片视图上尝试此操作
{{ \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field }}
默认情况下,模型文件位于App文件夹中。
这种直接访问数据库表不是首选,但您可以将其作为变量从控制器函数返回,如
$field = \App\UserSettings::where('user_id',Auth::user()->id)->first()->my_field;
return view('view_name',comapact('field'));
并使用像
这样的刀片{{$field}}
Orkhan在另一个使用雄辩关系的答案中发布了另一个好方法。 希望你明白。
答案 1 :(得分:1)
您需要检索与经过身份验证的用户关联的UserSettings
:
UserSettings::where('user_id', Auth::id())->first()->my_field
您可以定义一个名为current()
的方法来为您返回。
class UserSettings extends Model
{
public static function current()
{
return UserSettings::where('user_id', Auth::id())->first()
}
}
然后使用:
UserSettings::current()
另一方面,最好在用户模型上使用one-to-one relationship:
class User extends Model
{
public function settings()
{
return $this->hasOne('App\UserSettings');
}
}
然后使用:
Auth::user()->settings->my_field