理解Laravel中的雄辩

时间:2016-08-22 16:02:38

标签: php laravel eloquent

以前我使用过沼泽标准PHP,最近已经转移到了Laravel。我无法理解的一件事是Laravel Eloquent中的SQL查询。

例如,我有一个角色和一个用户表。角色表包含​​角色和每个角色的ID 。 users表包含各种用户详细信息以及 role_id以引用用户的角色

我在用户模型

中尝试了什么
public function role()
{
    // return $this->hasOne('App\Phone', 'foreign_key', 'local_key');
    return $this->hasOne('App\Role', 'id', 'role_id');
}

我在榜样

中尝试了什么
public function users()
{
    return $this->hasMany('App\User', 'role_id', 'id');
}

然后在我的控制器

public function index()
{
    $var = User::find()->role->get();

    return view('article', 
        array(
        'var' => $var
        ));
}

但是现在如何像普通PHP一样访问两个表中的字段?我宁愿使用标准SQL,但我正在努力学习这个框架。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以通过雄辩的模型属性访问表字段。

如果您有nameemail等字段,则可以像

一样获取它们
$user = User::find(1);

$name = $user->name;
$email = $user->email;

$roleName = $user->role->name;

请注意,您不必在关系上调用get()方法。访问它会自动调用它。

Laravel文档对此事非常有帮助。 Laravel 5.2 Eloquent: Getting StartedLaravel 5.2 Eloquent: Relationships

答案 1 :(得分:0)

尝试加载

$var = User::with('role')->find($userId)->get();