以前我使用过沼泽标准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,但我正在努力学习这个框架。
有什么建议吗?
答案 0 :(得分:0)
您可以通过雄辩的模型属性访问表字段。
如果您有name
,email
等字段,则可以像
$user = User::find(1);
$name = $user->name;
$email = $user->email;
$roleName = $user->role->name;
请注意,您不必在关系上调用get()
方法。访问它会自动调用它。
Laravel文档对此事非常有帮助。 Laravel 5.2 Eloquent: Getting Started和Laravel 5.2 Eloquent: Relationships
答案 1 :(得分:0)
尝试加载
$var = User::with('role')->find($userId)->get();