Search code examples
phplaravelentrust

Laravel 5.5 and Entrust


I am trying to apply roles and permission on Laravel 5.5 with Entrust.

I used this, as the documentation inside the: App\models\Role.php

<?php namespace App;

use Zizaco\Entrust\EntrustRole;

class Role extends EntrustRole
{

    $owner = new Role();
    $owner->name         = 'owner';
    $owner->display_name = 'Project Owner'; // optional
    $owner->description  = 'User is the owner of a given project'; // optional
    $owner->save();

    $admin = new Role();
    $admin->name         = 'admin';
    $admin->display_name = 'User Administrator'; // optional
    $admin->description  = 'User is allowed to manage and edit other users'; // optional
    $admin->save();

    $manager = new Role();
    $manager->name         = 'manager';
    $manager->display_name = 'Company Manager'; // optional
    $manager->description  = 'User is a manager of a Department'; // optional
    $manager->save();
}

?>

However, when i am trying to assign role to a user I receiving this issue:

{
..
$owner = new Role();
$owner->name = 'owner';
...
}

"Parse error: syntax error, unexpected '$owner' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST)"

Can you advice me please?


Solution

  • How about a function/method ? ;)

    <?php namespace App;
    
    use Zizaco\Entrust\EntrustRole;
    
    class Role extends EntrustRole
    {
    
    public function setup() 
    {
        $owner = new Role();
        $owner->name         = 'owner';
        $owner->display_name = 'Project Owner'; // optional
        $owner->description  = 'User is the owner of a given project'; // optional
        $owner->save();
    
        $admin = new Role();
        $admin->name         = 'admin';
        $admin->display_name = 'User Administrator'; // optional
        $admin->description  = 'User is allowed to manage and edit other users'; // optional
        $admin->save();
    
        $manager = new Role();
        $manager->name         = 'manager';
        $manager->display_name = 'Company Manager'; // optional
        $manager->description  = 'User is a manager of a Department'; // optional
        $manager->save();
    }
    }