PHP code example of cyaoz94 / laravel-utilities

1. Go to this page and download the library: Download cyaoz94/laravel-utilities library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

cyaoz94 / laravel-utilities example snippets


// imports
use Cyaoz94\LaravelUtilities\CrudController;

class AdminUserController extends CrudController
{

    public function __construct(Request $request)
    {
        // let specify model class
        $this->modelClass = AdminUser::class;

        parent::__construct($request);
    }
    // your implementation here
}

// imports
use Cyaoz94\LaravelUtilities\Filters\Filterable;

class AdminUser extends Authenticatable 
{
    // use Filterable trait
    use HasFactory, Filterable;
}

namespace Cyaoz94\LaravelUtilities\Filters;

class AdminUserFilter extends QueryFilter
{
    public function name($value)
    {
        parent::like('name', $value);
    }
}

// imports
use Cyaoz94\LaravelUtilities\CrudController;
use Cyaoz94\LaravelUtilities\Filters\AdminUserFilter;

class AdminUserController extends CrudController
{

    public function __construct(Request $request)
    {
        $this->modelClass = AdminUser::class;
        // specify Filter class
        $this->filterClass = AdminUserFilter::class;

        parent::__construct($request);
    }

    // your implementation here
}

class AdminUserController extends CrudController
{
    // an overriding function in the child class
    public function index(Request $request)
    {
        $query = AdminUser::filter(new AdminUserFilter($request));

        // your implementations
    }
}

protected $routeMiddleware = [
    'permission' => \Cyaoz94\LaravelUtilities\PermissionMiddleware::class,
];

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Spatie\Permission\Exceptions\UnauthorizedException as SpatieUnauthorizedException;
use Throwable;

class Handler extends ExceptionHandler
{
    public function render($request, Throwable $exception, $message = '')
    {
        if ($exception instanceof SpatieUnauthorizedException) {
            return response()->json(
                [
                    'code' => 401,
                    'error_message' => 'Unauthorized',
                ], 401
            );
        }
    }
}

Route::get('', [AdminUserController::class, 'index'])->middleware('permission:admin-user.read');

$permissions = [
    'admin-user.create',
    'admin-user.read',
    'admin-user.update',
    'admin-user.delete',
    'user.create',
    'user.read',
    'user.update',
    'user.delete',
    'role.create',
    'role.read',
    'role.update',
    'role.delete',
];

// database/seeders/RolePermissionSeeder.php

$guardName = 'sanctum';

// app/Models/AdminUser.php

namespace App\Models;

use Laravel\Sanctum\HasApiTokens;
use Cyaoz94\LaravelUtilities\Models\AdminUser as BaseAdminUser;

class AdminUser extends BaseAdminUser
{
    use HasApiTokens;

    protected $guard_name = 'sanctum';
}


namespace App\Providers;

use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Spatie\Permission\Models\Role;
use Cyaoz94\LaravelUtilities\Policies\RolePolicy;

class AuthServiceProvider extends ServiceProvider
{
    protected $policies = [
        Role::class => RolePolicy::class,
    ];

    public function boot()
    {
        $this->registerPolicies();
    }
}
bash
php artisan vendor:publish --provider="Cyaoz94\LaravelUtilities\LaravelUtilitiesServiceProvider" --tag="migrations"
bash
php artisan migrate
bash
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
bash
php artisan migrate
bash
php artisan vendor:publish --provider="Cyaoz94\LaravelUtilities\LaravelUtilitiesServiceProvider" --tag="seeders"
bash
php artisan db:seed --class=RolePermissionSeeder