簡體   English   中英

關系上的Laravel函數返回對未定義方法的調用

[英]Laravel function on a relationship returns call to undefined method

我試圖應用一個函數來獲取組的值,結構如下:

  • 用戶
      • GroupPermissions

我有的:

模型使用者

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM