Downloads
Stars
Version
๐ ๅบไบ spatie/laravel-permission ไบๆฌกๅผๅ็ๆ้ฎ็บงๆ้็ฎก็ Laravel ๆฉๅฑๅ ใ(่ง่ฒใๆ้ใ่ๅใๆ้ฎ)
$ composer require achais/laravel-permission -vvv
็ๆ้ ็ฝฎๆไปถ
# ๅฆๆไฝ ๅฎ่ฃ
่ฟ spatie/laravel-permission ๅนถๅๅปบไบ permission.php ่ฏทๅฟฝ็ฅ่ฟๆญฅ
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
ๅจ permission.php ๅฏนๅบไฝ็ฝฎไธญๅ ๅ ฅ่ๅ้ ็ฝฎไฟกๆฏ
<?php
return [
'models' => [
// ...
'role' => Achais\Permission\Models\Role::class,
'menu' => Achais\Permission\Models\Menu::class,
],
'table_names' => [
// ...
'menus' => 'menus',
'role_has_menus' => 'role_has_menus',
'menu_table' => 'menu_table',
],
// guard ๅ็งฐ
'role_guard_name' => 'admin',
];
็ๆ่ฟ็งปๆไปถ
# ๅฆๆไฝ ๅฎ่ฃ
่ฟ spatie/laravel-permission ๅนถๅๅปบไบ migrations ่ฏทๅฟฝ็ฅ่ฟๆญฅ
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
# ่ฟๆฏๆฌๅ
ๆไพ็็ๆ menus ๅ role_has_menus ๆฐๆฎๅบ่กจ็ migrations
php artisan vendor:publish --provider="Achais\Permission\PermissionServiceProvider" --tag="migrations"
ๆฅไธๆฅๅจไฝฟ็จ migrations ็ๆๆฐๆฎๅบ่กจ
php artisan migrate
้ฆๅ , ๆทปๅ Achais\Permission\Traits\HasRoles ็นๆงๅฐไฝ ็ User model(s):
use Illuminate\Foundation\Auth\User as Authenticatable;
use Achais\Permission\Traits\HasRoles;
class User extends Authenticatable
{
// ๆณจๆ่ฟ้ๆฏ \Achais\Permission\Traits\HasRoles
use HasRoles;
// ...
}
ๅ ณไบ่ง่ฒๅๆ้็ๆไฝ่ฏทๆฅ็่ฟ้. spatie/laravel-permission
ๅ ณไบ่ง่ฒๅ่ๅ็ๆไฝ็ปง็ปญๅพไธ็. ๐๐๐
ๅๅปบไธไธช่ง่ฒๅ่ๅ
use Achais\Permission\Models\Role;
use Achais\Permission\Models\Menu;
$role = Role::create(['name' => '็ฎก็ๅ']);
$menu = Menu::create([
'name' => 'ๆ็ซ ๅ่กจ',
'url' => '/posts',
'type' => Menu::TYPE_MENU,
'icon' => 'iconName',
]);
ๅ ณ่่ง่ฒๅ่ๅ
$role->giveMenuTo($menu);
$menu->assignRole($role);
ๅๆถๅ ณ่ๅคไธช่ง่ฒๅ่ๅ
$role->syncMenus($menus);
$menu->syncRoles($roles);
่ทๅ็จๆท่ๅๆ
่ๅ็ฑปๅๅไธบ: ็ฎๅฝใ่ๅใๆ้ฎ
็ฎๅฝ: ๆ ๅฏๆฅ็็้กต้ข, ไป ๅ็ฑปไฝฟ็จ
่ๅ: ๅฏๆฅ็็้กต้ข
ๆ้ฎ: ๆ ๅฏๆฅ็็้กต้ข, ไป ๅจ่ๅ้กต้ขๅ ๆพ็คบ
$user = \Auth::user();
$parentId = null; // ็ถ่ๅID (็จๅจ่ทๅๆๅฎ่ๅไธ็ๅญ่ๅๆ )
$showButton = false; // ๆฏๅฆๆพ็คบๆ้ฎ็ฑปๅ็่ๅ
$user->getMenuTree($parentId, $showButton);
You can contribute in one of three ways:
The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.
MIT