创建一个视图来管理权限

问题描述

我正在尝试在我的网站上创建一个视图,管理员可以在其中管理用户的权限。 我在一些网站上看到您可以使用spatie创建这些权限,但是当我运行命令时:

  composer require spatie/laravel-permission
       composer require laravelcollective/html

我收到此错误

The requested PHP extension ext-MysqL * is missing from your system. Install or enable PHP's MysqL extension.

我试图直接在终端上运行命令而不访问项目,但是这样做是不允许我进行迁移的。

我想知道是否还有另一种不涉及spartie的方法,或者是否有任何方法可以解决我遇到的问题。

用户控制器:

      <?PHP

      namespace App\Http\Controllers;

       use App\Role;
       use App\User;
       use Illuminate\Http\Request;
       use Illuminate\Support\Facades\Hash;

       class UsersController extends Controller
      {

    public function index(Request $request){

        $users = User::orderBy('id','DESC')->paginate(5);

        return view('users.index',compact('users'))
            ->with('i',(request()->input('page',1) - 1) * 5);
    }

    public function show($id){
        $users = User::findorfail($id);

        return view('users.show',compact('users'));
    }

    public function create(){

        $roles=Role::pluck('name','name')->all();
        return view('register.create',compact('roles'));

    }

    public function store(Request $request){

        $this->validate($request,[
            'name' => 'required','lastname'=> 'required','email'=> 'required|email|unique:users,email','password'=> 'required|same:confirm-password','roles'=> 'required',]);

        $input=$request->all();
        $input['password'] = Hash::make($input['password']);

        $user = User::create($input);

        $user->assignRole($request->input('roles'));

        return redirect()->route('users.index')->with('success','User created successfully');
    }


    public function edit ($id){
        $users = User:: findorfail($id);
        $roles = Role::pluck('name','name')->all();
        $userRole = $users->roles->pluck('name','name')->all();

        return view('users.edit',compact('users','roles','userRole'));
    }

    public function destroy($id){
        $users = User::findorfail($id);

        $users->delete($id);

        return redirect('/users')->with('User deleted correctly');

    }

    public function update (Request $request,$id){

       $this->validate($request,]);

       $input = $request->all();

       if (!empty($input['password'])){
           $input['password'] = Hash::make($input['password']);
       }else{
           $input = array_except($input,array('password'));
       }

        $user = User::find($id);
        $user->update($input);
        $user->assignRole($request->input('roles'));

        return redirect('/users/'.$user->id)->with('User updated successfully');
    }
}


 

路线文件

    <?PHP
use App\User;
use Illuminate\Http\Request;

Route::get('/home','ReturnsController@create')->middleware('auth');
Route::get('/home','ReturnsController@store')->middleware('auth');
Route::get('/register/create','UsersController@create');
Route::post('/register','UsersController@store');
Route::get('/users/create','UsersController@create');
Route::post('/users','UsersController@store');
Route::get('/users','UsersController@index');
Route::get('/users/{users}','UsersController@show');
Route::get('/users/{users}/edit','UsersController@edit');
Route::delete('/users/{users}/destroy','UsersController@destroy')->name('users.destroy');

Route::get('/users/{id}','UsersController@edit');

Route::resource('role','RoleController');

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)