I had this code for db seed in laravel 5.
But when I run, it gives syntax error expecting end file error.. This is using spatie permission package..
this is the code:
<?php
use Illuminate\Database\Seeder;
use App\Permission;
use App\Role;
use App\User;
use App\Post;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// Ask for confirmation to refresh migration
if ($this->command->confirm('Do you wish to refresh migration before seeding, Make sure it will clear all old data ?')) {
$this->command->call('migrate:refresh');
$this->command->warn("Data deleted, starting from fresh database.");
}
// Seed the default permissions
$permissions = Permission::defaultPermissions();
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
$this->command->info('Default Permissions added.');
// Ask to confirm to assign admin or user role
if ($this->command->confirm('Create Roles for user, default is admin and user? [y|N]', true)) {
// Ask for roles from input
$roles = $this->command->ask('Enter roles in comma separate format.', 'Admin,User');
// Explode roles
$rolesArray = explode(',', $roles);
// add roles
foreach($rolesArray as $role) {
$role = Role::firstOrCreate(['name' => trim($role)]);
if( $role->name == 'Admin' ) {
// assign all permissions to admin role
$role->permissions()->sync(Permission::all());
$this->command->info('Admin will have full rights');
} else {
// for others, give access to view only
$role->permissions()->sync(Permission::where('name', 'LIKE', 'view_%')->get());
}
// create one user for each role
$this->createUser($role);
}
$this->command->info('Roles ' . $roles . ' added successfully');
} else {
Role::firstOrCreate(['name' => 'User']);
$this->command->info('By default, User role added.');
}
}
/**
* Create a user with given role
*
* @param $role
*/
private function createUser($role)
{
$user = factory(User::class)->create();
$user->assignRole($role->name);
if( $role->name == 'Admin' ) {
$this->command->info('Admin login details:');
$this->command->warn('Username : '.$user->email);
$this->command->warn('Password : "secret"');
}
}
}
I already tried to check the code but failed to detect the syntax missing.
Can anyone help me to detect the problem in the code?
Thank you.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire