Laravel在刀片视图中从数据库获取记录

时间:2017-08-17 16:04:03

标签: php laravel

我想知道如何从用户表中获取刀片中数据库的数据:

{{ Auth::user()->name }}

我有表user_settings

我想通过记录的用户ID从此表中获取记录,如下所示:

{{ UserSettings::user()->my_field }} 

我该怎么做?

2 个答案:

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