Bài 26: tối ưu code

Bài 26: tối ưu code

  

-    Vào app tạo foder Services tạo file PermissionGateAndPolicyAccess.php

-    Vào AuthServiceProvider.php sửa lại mã nguồn
<?php

namespace App\Providers;

use App\Product;
use App\Services\PermissionGateAndPolicyAccess;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];

/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
$permissionGateAndPolicy = new PermissionGateAndPolicyAccess();
$permissionGateAndPolicy->setGateAndPolicyAccess();
}

}
-    Vào PermissionGateAndPolicyAccess.php 
<?php
namespace App\Services;

use Illuminate\Support\Facades\Gate;

class PermissionGateAndPolicyAccess{

public function setGateAndPolicyAccess(){
$this->defineGateCategory();
$this->defineGateMenu();
$this->defineGateSlider();
$this->defineGateSetting();
$this->defineGateUser();
$this->defineGateRole();
$this->defineGateProduct();

}
public function defineGateCategory(){
Gate::define('category_list','App\Policies\CategoryPolicy@view');
Gate::define('category_add','App\Policies\CategoryPolicy@create');
Gate::define('category_edit','App\Policies\CategoryPolicy@update');
Gate::define('category_delete','App\Policies\CategoryPolicy@delete');
}
public function defineGateMenu(){
Gate::define('menu_list','App\Policies\MenuPolicy@view');
Gate::define('menu_add','App\Policies\MenuPolicy@create');
Gate::define('menu_edit','App\Policies\MenuPolicy@update');
Gate::define('menu_delete','App\Policies\MenuPolicy@delete');
}
public function defineGateSlider(){
Gate::define('slider_list','App\Policies\SliderPolicy@view');
Gate::define('slider_add','App\Policies\SliderPolicy@create');
Gate::define('slider_edit','App\Policies\SliderPolicy@update');
Gate::define('slider_delete','App\Policies\SliderPolicy@delete');
}
public function defineGateSetting(){
Gate::define('setting_list','App\Policies\SettingPolicy@view');
Gate::define('setting_add','App\Policies\SettingPolicy@create');
Gate::define('setting_edit','App\Policies\SettingPolicy@update');
Gate::define('setting_delete','App\Policies\SettingPolicy@delete');
}
public function defineGateUser(){
Gate::define('user_list','App\Policies\UserPolicy@view');
Gate::define('user_add','App\Policies\UserPolicy@create');
Gate::define('user_edit','App\Policies\UserPolicy@update');
Gate::define('user_delete','App\Policies\UserPolicy@delete');
}
public function defineGateRole(){
Gate::define('role_list','App\Policies\RolePolicy@view');
Gate::define('role_add','App\Policies\RolePolicy@create');
Gate::define('role_edit','App\Policies\RolePolicy@update');
Gate::define('role_delete','App\Policies\RolePolicy@delete');
}
public function defineGateProduct(){
Gate::define('product_list','App\Policies\ProductPolicy@view');
Gate::define('product_add','App\Policies\ProductPolicy@create');
Gate::define('product_edit','App\Policies\ProductPolicy@update');
Gate::define('product_delete','App\Policies\ProductPolicy@delete');
}
}
-    Muốn với tài khoản nào truy cập vào có những chức năng gì thì mới hiện chức năng đó:
-    Vào admin => category sửa lại mã nguồn:  (tương tự với các màn hình khác)
<!-- Stored in resources/views/child.blade.php -->

@extends('layouts.admin')

@section('title')
<title>Trang ch</title>
@endsection

@section('content')
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
@include('partials.content-header',['name'=>'category', 'key'=>'List'])
<!-- /.content-header -->

<!-- Main content -->
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
@can('category_add')
<a href="{{ route('categories.create') }}" class="btn btn-success float-right mr-2">add</a>
@endcan
</div>
<div class="col-md-12">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Tên danh mc sn phm</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>

@foreach($categories as $category)

<tr>
<th scope="row">{{$category->id}}</th>
<td>{{ $category->name }}</td>
<td>
@can('category_edit')
<a href="{{ route('categories.edit', ['id'=>$category->id]) }}"
class="btn btn-default">Edit</a>
@endcan
@can('category_delete'
)
<a href="{{ route('categories.delete', ['id'=>$category->id]) }}"
class="btn btn-danger">Delete
</a>@endcan
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="col-md-12">
{{ $categories->links() }}
</div>

</div>
<!-- /.row -->
</div>
<!-- /.container-fluid -->
</div>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
@endsection

Đăng nhận xét

0 Nhận xét

myadcash