nexthb / symfony-permission
本包最新版本(dev-master)没有可用的许可证信息。
dev-master
2021-06-12 18:55 UTC
Requires
- php: >=7.2
This package is not auto-updated.
Last update: 2024-09-30 08:40:06 UTC
README
将用户与角色关联。安装
第一步:下载Bundle
打开命令行,进入您的项目目录,并执行以下命令以下载此Bundle的最新稳定版本
$ composer require nexthb/symfony-permission
此命令要求您已全局安装Composer,请参阅Composer文档中的安装章节。
第二步:启用Bundle
在Symfony中,该包将自动激活。但如果出现错误,您可以手动安装它。
然后,将Bundle添加到项目中config/bundles.php
文件中注册的Bundle列表中,以启用该Bundle
<?php // config/bundles.php return [ //... next\SymfonyPermissionBundle\SymfonyPermissionBundle::class => ['all' => true] ];
第三步:创建用户、角色、类
A) 创建用户类
为您的应用程序创建用户类。此类可以看起来和表现成任何您想要的:添加任何您认为有用的属性或方法。这是您的用户类。
<?php //... use \next\SymfonyPermissionBundle\Model\BaseUser; /** * @ORM\Entity(repositoryClass=UserRepository::class) * @UniqueEntity(fields={"email"}, message="There is already an account with this email") * @ORM\HasLifecycleCallbacks() */ class User extends BaseUser { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private ?int $id = null; /** * @ORM\ManyToMany(targetEntity=Role::class, inversedBy="users",cascade={"persist"}) */ protected $accessRoles; }
B) 创建角色类
为您的应用程序创建角色类。此类可以看起来和表现成任何您想要的:添加任何您认为有用的属性或方法。这是您的角色类。
use next\SymfonyPermissionBundle\Model\Role as BaseRole; /** * @ORM\Entity(repositoryClass=RoleRepository::class) * @ORM\HasLifecycleCallbacks() */ class Role extends BaseRole { /** * @ORM\Column(type="string", length=100) */ protected string $name; /** * @ORM\ManyToMany(targetEntity=User::class, mappedBy="roles") */ protected $users; }
第四步:设置Bundle
为设置创建一个“symfony_permission.yaml”文件。
# config/packages/symfony_permission.yaml symfony_permission: user: App\Entity\User role: App\Entity\Role
- user: 定义 'User' 类地址
- role: 定义 'Role' 类地址
第五步:它做什么
此包允许您在数据库中管理用户和角色。安装后,您可以执行类似以下操作
PHP
$user->hasRole($role); $user->hasAllRole($role,$role1); $user->hasAnyRole([$role,$role1]);
命令
php bin/console next:user:create php bin/console next:role:create