【发布时间】:2013-12-06 12:43:49
【问题描述】:
我对 Laravel 很陌生,目前正在努力解决以下问题:
我想创建一个用户组管理。所以我想将用户添加到一个组并为这些组添加权限,以获得授权。我的目标是拥有一个User::hasRight('exampleRight') 函数,我可以轻松调用它。为此,我想在用户类内部有一个函数链接。我有这个函数来创建到 UserGroup-Table 的连接(它将用户 ID 连接到组 ID):
public function role()
{
return $this->hasOne('UserGroup');
}
下一个函数将返回一个权限数组。我的计划是写类似
public function rights()
{
$rights = Groups::find($this->role()->groups_id)->rights;
return $rights;
}
GroupsModel 当然有这个函数来获取权限:
public function rights()
{
return $this->hasMany('Rights');
}
但显然$this->role()->groups_id 没有给我groups_id,而是抛出错误Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$groups_id。当我离开 ->groups_id 时,将其添加到控制器中,例如:
(注意力控制器,没有模型!)
public function getUserRole()
{
return User::find(10)->rights->groups_id;
}
它给了我正确的答案。有人可以告诉我,错误是什么?我真的不明白这是怎么回事......
提前谢谢你!
问候
【问题讨论】:
标签: php model laravel laravel-4