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']);
}
}
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