zodexnl / spatie-permission-to-vue-inertia
在Vue中使用Inertia的Spatie权限包
v1.0.1
2023-05-16 17:58 UTC
Requires
- spatie/laravel-permission: >=5.4.0
This package is auto-updated.
Last update: 2024-09-16 21:16:05 UTC
README
Inertia & Vue3
这个包是基于(ahmedsaoud31/laravel-permission-to-vuejs)的分支,需要spatie-permission
包。
我创建这个分支的原因是在我的项目中,我需要强制刷新浏览器才能看到角色和/或权限的变化。为了使这个包正常工作,您需要使用Inertia和Vue3。
安装
composer require zodexnl/spatie-permission-to-vue-inertia
配置
首先,将以下特性添加到您的User
模型中
use SpatiePermissionsToVueInertia\Traits\SpatiePermissionsToVue; class User extends Authenticatable { use SpatiePermissionsToVue; }
其次,您需要在app.js
文件中添加spatie-permission-to-vuejs
插件
import LaravelPermissionToVueJS from "../../vendor/zodexnl/spatie-permission-to-vue-inertia/src/js; import Vue from 'vue'; Vue.use(plugin); Vue.use(LaravelPermissionToVueJS);
最后,您需要在HandleInertiaRequest.php
中添加以下内容
public function share(Request $request) { return array_merge(parent::share($request), [ 'permissions' => json_decode(auth()->check() ? auth()->user()->jsPermissions() : '{}', true), ]); }
使用方法
您可以在项目中使用以下代码
<div v-if="can('Permission name')"> <!-- Code --> </div> <div v-if="is('roleName')"> <!-- Code --> </div>
许可证
MIT许可证(MIT)。