Search code examples
laravellaravel-permission

Laravel 5.5 Spatie Permission doesn't create role


I'm using laravel 5.5 and spatie / laravel-permission ":" ^ 2.38 ". I created a simple controller for creating a role, but laravel returns the error:

Illuminate \ Database \ Eloquent \ MassAssignmentException "name" My simple controller is:

<?php

namespace App;
namespace App\Http\Controllers\UserRole;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Model;

use App\Role;
use App\Permission;
use DB;

class RolePermission extends Controller
{
public function create_role(){

    Role::create(['name' => 'noc']);

}
}

Solution

  • The problem is not related to Spatie. You must allow the Role object to be mass-assignable. In your case, you must put:

    protected $fillable = ['name'];
    

    to your Role model, or:

    protected $guarded = [];
    

    See more here