[英]Laravel attach returns undefined method for belongsToMany relationship
[英]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");
}
模型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()
將返回一個集合作為結果。 沒有一個模型。 因此,您不能只對其調用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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.