Laravel 关系上的函数 returns 调用未定义的方法
Laravel function on a relationship returns call to undefined method
我正在尝试应用一个函数来获取组的值,结构如下:
- 用户
- 组
- 群组权限
我有:
型号用户
class User extends Eloquent {
public function group(){
return $this->belongsTo("Group");
}
型号组:
class Group extends Eloquent {
public function GroupPermissions(){
return $this->hasMany("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()
GroupPermissions()
将 return 一个集合作为结果。不是一个单一的模型。所以你不能只调用 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');
我正在尝试应用一个函数来获取组的值,结构如下:
- 用户
- 组
- 群组权限
- 组
我有:
型号用户
class User extends Eloquent {
public function group(){
return $this->belongsTo("Group");
}
型号组:
class Group extends Eloquent {
public function GroupPermissions(){
return $this->hasMany("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()
GroupPermissions()
将 return 一个集合作为结果。不是一个单一的模型。所以你不能只调用 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');