首页 > 解决方案 > 在播种机 Laravel 中调用未定义的方法

问题描述

我尝试为用户创建角色和权限,当我尝试为角色分配权限时,我在播种机上收到错误消息。

//from seeder
    use App\Ability;
    use App\Role;
    use App\User;

    public function run(){
        $owner = Ability::where('name', '=', 'owner');
        $administrator = Role::where('name', '=', 'administrator');
        $administrator->allowTo($owner);
    }

//from my Role Model
     public function abilities()
     {
         return $this->belongsToMany(Ability::class)->withTimestamps();
     }

     public function allowTo($ability)
     {
         $this->abilities()->save($ability);
     }

调用未定义的方法 Illuminate\Database\Eloquent\Builder::allowTo()

标签: laravellaravel-7

解决方案


你没有得到你只是检查条件的数据。

试试这个,让我知道这是否对你有帮助

//from seeder
    use App\Ability;
    use App\Role;
    use App\User;

    public function run(){
        $owner = Ability::where('name', '=', 'owner')->first();
        $administrator = Role::where('name', '=', 'administrator')->first();
        $administrator->allowTo($owner);
    }

//from my Role Model
     public function abilities()
     {
         return $this->belongsToMany(Ability::class)->withTimestamps();
     }

     public function allowTo($ability)
     {
         $this->abilities()->save($ability);
     }

推荐阅读