PHP code example of mmstfkc / basic-crud

1. Go to this page and download the library: Download mmstfkc/basic-crud 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/ */

    

mmstfkc / basic-crud example snippets



    protected $dontReport = [
        ...
        BasicCrudException::class
    ];

    public function render($request, Throwable $e): Response|JsonResponse
    {
        [$message, $statusCode, $code, $errors] = $this->getBasicCrudExceptionExceptionFields($e);

        if (App::environment() == 'production') {
            $errors = '';
        }

        return response()->json(
            [
                'status' => false,
                'code' => $code,
                'errors' => $errors,
                'message' => $message,
            ],
            $statusCode
        );
    }

    private function getBasicCrudExceptionExceptionFields(Throwable $exception): array
    {
        $errors = $exception->getMessage();
        $message = Str::snake(class_basename($exception));
        $statusCode = 500;
        $code = 1008;

        switch (get_class($exception)) {
            case BasicCrudException::class:
                $message = 'validation';
                $errors = $exception->getErrors();
                $statusCode = 422;
                $code = 1002;
                break;
        }

        return [
            $message,
            $statusCode,
            $code,
            $errors,
        ];
    }



namespace App\Http\Controllers\User;

use App\Models\User;
use Mmstfkc\BasicCrud\app\Http\Controllers\ModelController;

class UserController extends ModelController
{
    public function __construct()
    {
        parent::__construct(User::class);
    }
}



use App\Http\Controllers\User\UserController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::group(['prefix' => 'users'], function () {
    Route::get('', [UserController::class, 'modelIndex']);
    Route::get('{id}', [UserController::class, 'modelDetail']);
    Route::post('', [UserController::class, 'modelStore']);
    Route::put('{id}', [UserController::class, 'modelUpdate']);
    Route::delete('{id}', [UserController::class, 'modelDelete']);
});



namespace App\Http\Controllers\User;

use App\Http\Requests\User\MyRequest;
use App\Models\User;

use Mmstfkc\BasicCrud\app\Http\Controllers\ModelController;

class UserController extends ModelController
{
    /**
     *
     */
    public function __construct()
    {
        parent::__construct(User::class);
    }

    /**
     * @param MyRequest $request
     * @return mixed
     */
    public function index(MyRequest $request): mixed
    {
        return $this->repository->index($request->validated());
    }

    /**
     * @param $id
     * @return mixed
     */
    public function detail($id): mixed
    {
        return $this->repository->detail($id);
    }

    /**
     * @param MyRequest $request
     * @return mixed
     */
    public function store(MyRequest $request): mixed
    {
        return $this->repository->store($request->validated());
    }

    /**
     * @param MyRequest $request
     * @param $id
     * @return mixed
     */
    public function update(MyRequest $request, $id): mixed
    {
        return $this->repository->update($request->validated(), $id);
    }

    /**
     * @param $id
     * @return mixed
     */
    public function delete($id): mixed
    {
        return $this->repository->delete($id);
    }
}
bash
  cp vendor/mmstfkc/basic-crud/src/config/basicCrud.php config