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