关于laravel:laraveladmin-后台管理用户扩展一个字段

咱们心愿可能做一个性能,这个性能是给admin_user加一个viewself字段,当拜访文章治理性能时,如果开启此字段,只展现admin用户本人的文章。

首先咱们在数据库中给admin_user增加一个字段

20200702140148

新建一个Model继承Administrator,增加本人的字段

app\Models\CustomAdministrator.php

<?php
 
 
namespace App\Models;
 
 
use Encore\Admin\Auth\Database\Administrator;
 
class CustomAdministrator extends Administrator
{
    public function __construct( array $attributes = [] ) {
        parent::__construct( $attributes );
        array_push( $this->fillable, 'viewself' );
    }
}

新建一个controller 继承 UserController

app\Admin\Controllers\CustomUserController.php

<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\UserController;
 
class CustomUserController extends UserController {
    protected function grid() {
        $g = parent::grid();
        //$g->column( 'viewself', '只看本人' );
        $states = [
            'on' => ['text' => 'YES'],
            'off' => ['text' => 'NO'],
        ];
 
        $g->viewself()->switch($states);
        return $g;
    }
    public function form() {
        $f = parent::form();
        $f->switch( 'viewself','只看本人' );
        return $f;
    }
}

笼罩原来的adminuser的路由器

$router->resource( 'auth/users', CustomUserController::class );

从新拜访

http://localhost:8000/admin/a…

就能够了

还未完哦!

来到文章治理,咱们还要为文章增加管制显示,让开启viewself的用户只能查看本人的文章

来到:app\Admin\Controllers\PostsController.php

  protected function grid()
    {
        $grid = new Grid(new Posts);
        //获取本人权限下的内容
        $username = Admin::user()->viewself;
 
        if($username == 1){
 
            $grid->model()->where ('author_id', '=', Admin::user()->id);
 
        }
    }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理