我尝试应用函数来获取组的值,结构如下:
我有什么:
模特用户
class User extends Eloquent {
public function group(){
return $this->belongsTo("Group");
}
模型组:
class Group extends Eloquent {
public function GroupPermissions(){
return $this->hasMany("GroupPermissions");
}
模型 GroupPermissions :
class GroupPermissions extends Eloquent {
public function group(){
return $this->belongsTo("Group");
}
public function getPermission($permission){
return $this->first()->$permission;
}
我收到此错误:
Call to undefined method Illuminate\Database\Eloquent\Collection::getPermission()
答案 0 :(得分:1)
GroupPermissions()
将返回一个集合作为结果。不是一个模型。所以你不能只在它上面调用getPermission()
。
你可以直接做到这一点:
$group = Group::find(1);
$permission = $group->GroupPermissions()->first()->foo;
或者将该功能放在组模型中:
public function getPermission($permission){
return $this->GroupPermissions()->first()->$permission;
}
用法:
$group = Group::find(1);
$permission = $group->getPermission('foo');