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

3次阅读

共计 1252 个字符,预计需要花费 4 分钟才能阅读完成。

咱们心愿可能做一个性能,这个性能是给 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);
 
        }
    }
正文完
 0