【发布时间】:2016-12-29 06:29:11
【问题描述】:
以前我使用过标准的 PHP,最近我转向了 Laravel。我无法掌握的一件事是 Laravel Eloquent 中的 SQL 查询。
例如,我有一个 roles 和一个 users 表。角色表包含每个角色的角色和 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,但正在尝试正确学习这个框架。
有什么建议吗?
【问题讨论】:
-
更改为
hasOne('App\Role', 'role_id', 'id');,但实际上您可以省略这些键,而 eloquent 会根据您的情况猜测它们。 -
告诉我你想要角色和用户之间的关系(1-1,1-n,n-n)。我给你举个例子
-
我会使用
belongsTo('App\Role')来表示role()关系。这就是在 many 端建模一对多关系的方式。