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