PHP code example of landao / laravel-core

1. Go to this page and download the library: Download landao/laravel-core 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/ */

    

landao / laravel-core example snippets




namespace Module\Tenant\Http\Controllers\V1\User;

use LanDao\LaravelCore\Controllers\ApiController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use LanDao\LaravelCore\Helpers\ResultHelper;
use LanDao\LaravelCore\Attributes\Inject;
use LanDao\LaravelCore\Attributes\Router\Delete;
use LanDao\LaravelCore\Attributes\Router\Get;
use LanDao\LaravelCore\Attributes\Router\Middleware;
use LanDao\LaravelCore\Attributes\Router\Post as PostAttributes;
use LanDao\LaravelCore\Attributes\Router\Put;
use LanDao\LaravelCore\Attributes\Router\WhereNumber;
use Module\Tenant\Http\Requests\User\PostRequest;
use Module\Tenant\Repositories\User\PostRepo;

#[Middleware(['auth:sanctum', 'auth.tenant', 'userOperate.log'])]
class Post extends ApiController
{
    #[Inject]
    protected PostRepo $postRepo;

    /**
     * 分页列表
     * @param Request $request
     * @return JsonResponse
     */
    #[Get(uri: '/post', name: 'post.index')]
    public function index(Request $request): JsonResponse
    {
        $ret = $this->postRepo->getLists($request->all());
        return $this->success([
            'pagination' => [
                'total' => $ret['total'],
                'page_size' => $ret['per_page'],
                'current_page' => $ret['current_page'],
            ],
            'list' => $ret['data']
        ]);
    }

    /**
     * 新增
     * @param PostRequest $request
     * @return JsonResponse
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     * @throws \LanDao\LaravelCore\Exceptions\RepositoryException
     */
    #[PostAttributes(uri: '/post/store', name: 'post.store')]
    public function store(PostRequest $request): JsonResponse
    {
        $ret = $this->postRepo->addPost($request->all());
        if ($ret['code'] == ResultHelper::CODE_SUCCESS) {
            return $this->success($ret['message']);
        }
        return $this->badSuccessRequest($ret['message']);
    }

    /**
     * 更新
     * @param int $postId
     * @param PostRequest $request
     * @return JsonResponse
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     * @throws \LanDao\LaravelCore\Exceptions\RepositoryException
     */
    #[Put(uri: '/post/{postId}', name: 'post.update'), WhereNumber('postId')]
    public function update(int $postId, PostRequest $request): JsonResponse
    {
        $ret = $this->postRepo->updatePost($postId, $request->all());
        if ($ret['code'] == ResultHelper::CODE_SUCCESS) {
            return $this->success($ret['message']);
        }
        return $this->badSuccessRequest($ret['message']);
    }

    /**
     * 删除
     * @param int $postId
     * @return JsonResponse
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     * @throws \LanDao\LaravelCore\Exceptions\RepositoryException
     */
    #[Delete(uri: '/post/{postId}', name: 'post.destroy'), WhereNumber('postId')]
    public function destroy(int $postId): JsonResponse
    {
        $ret = $this->postRepo->deletePost($postId);
        if ($ret['code'] == ResultHelper::CODE_SUCCESS) {
            return $this->success($ret['message']);
        }
        return $this->badSuccessRequest($ret['message']);
    }

    /**
     * 更新某字段
     * @param PostRequest $request
     * @param int $postId
     * @return JsonResponse
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     * @throws \LanDao\LaravelCore\Exceptions\RepositoryException
     */
    #[PostAttributes(uri: '/post/modify/postId', name: 'post.modifyFiled'), WhereNumber('postId')]
    public function modifyFiled(PostRequest $request, int $postId): JsonResponse
    {
        if ($postId <= 0) {
            return $this->badSuccessRequest('缺少必要的参数');
        }
        $fieldName = (string)$request->post('field_name');
        $fieldValue = $request->post('field_value');
        $ret = $this->postRepo->updateSomeField($postId, $fieldName, $fieldValue);
        if ($ret['code'] == ResultHelper::CODE_SUCCESS) {
            return $this->success($ret['message']);
        }
        return $this->badSuccessRequest($ret['message']);
    }
}


declare(strict_types=1);

namespace Module\Tenant\Enums\System;


use LanDao\LaravelCore\Attributes\Description;
use LanDao\LaravelCore\Enum\EnumExtend;

enum MenuTypeEnum: int
{
    use EnumExtend;

    /**
     * 目录
     * @var int
     */
    #[Description('目录')]
    case MENU_TYPE_CATALOG = 1;
    
    /**
     * 菜单
     * @var int
     */
    #[Description('菜单')]
    case MENU_TYPE_MENU = 2;
    
    /**
     * 权限
     * @var int
     */
    #[Description('权限')]
    case MENU_TYPE_PERMISSION = 3;
}

shell
php artisan vendor:publish --provider="LanDao\LaravelCore\ServiceProvider"
shell
php artisan landao:make-repository Bolg\\Post Tenant
shell
php artisan landao:make-repository Bolg\\Post
shell
php artisan landao:make-model Bolg\\Post Tenant
shell
php artisan landao:make-enum Bolg\\Post Tenant
shell
php artisan landao:make-request Bolg\\Post Tenant
shell
php artisan landao:make-migration crate_post_table Tenant