【发布时间】:2020-11-01 15:38:03
【问题描述】:
我在我的应用程序中使用Laravel 和VueJs,我想集成一个角色和权限部分,为此我使用Spatie。
在应用程序中,每个用户可以拥有多个角色(例如:管理员、教师、编辑),并且每个角色都有一些权限。
我尝试了一些来自 here 的东西,Shuyi 的回答,但我得到了一些错误。
问题是如何查看VueJS 中的角色?
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TeachersController extends Controller
{
function check($permissionName) {
if (! Auth::user()->hasPermissionTo($permissionName)) {
abort(403);
}
return response('', 204);
}
}
web.php
Route::group(['middleware' => 'auth'], function () {
Route::get('/permission/{permissionName}', 'PermissionController@check');
});
app.js
Vue.mixin("can", (permissionName) => {
let hasAccess;
axios.get(`/permission/${permissionName}`)
.then(() => {
hasAccess = true;
})
.catch(() => {
hasAccess = false;
});
return hasAccess;
});
App.vue
<template>
<button v-if="can('write-stuff')">Just a test!</button>
</template>
属性或方法“can”未在实例上定义但被引用 在渲染期间。确保此属性是反应性的,无论是在 数据选项,或者对于基于类的组件,通过初始化 财产。看: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
【问题讨论】: