咱们心愿可能做一个性能,这个性能是给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

<?phpnamespace 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);         }    }