• l5-repository基本使用--结合使用artisan


    一、从头开始创建

    1、执行以下artisan:

    php artisan make:entity Student

    如果某个文件已经存在,则不会创建新的文件去覆盖原有的文件,案例如下:

    2、修改model:Student.php

        protected $table = 'student';
        protected $primaryKey = 'id';
        public $timestamps = false;
        protected $fillable = [];

    3、StudentRepository.php增加方法:

    public function getInfoById($id, $sel);

    4、StudentRepositoryEloquent.php添加方法:

    use IlluminateSupportFacadesDB;
        public function getInfoById($id, $sel)
        {
            return $this->model
                        ->select(DB::raw(implode(',', $sel)))
                        ->where('id', $id)
                        ->first();
        }

    5、新增StudentService.php

    <?php
    
    namespace AppServices;
    
    class StudentService
    {
        private $studentRepository;
    
        public function __construct($studentRepository)
        {
            $this->studentRepository = $studentRepository;
        }
    
        public function getInfoById($id)
        {
            return $this->studentRepository->getInfoById($id, ['name', 'age']);
        }
    }

    6、修改控制器:StudentsController.php

    <?php
    
    namespace AppHttpControllers;
    
    use AppRepositoriesStudentRepository;
    use AppServicesStudentService;
    
    
    /**
     * Class StudentsController.
     *
     * @package namespace AppHttpControllers;
     */
    class StudentsController extends Controller
    {
        private $studentService;
        /**
         * StudentsController constructor.
         *
         * @param StudentRepository $repository
         * @param StudentValidator $validator
         */
        public function __construct(StudentRepository $studentRepository)
        {
            $this->studentService = new StudentService($studentRepository);
        }
    
        public function test()
        {
            $data = $this->studentService->getInfoById(1);
            dd($data);
        }
    }

    7、然后添加必要的路由,即可获得数据

    Route::get('/student/test', 'StudentsController@test');

    8、注册RepositoryServiceProvider:

    其他随笔l5-repository基本使用

  • 相关阅读:
    域名ICP备案个人备案写网站名称注意事项
    关于域名备案的注意事项
    MySQL里默认的几个库是干啥的?
    Python 1.3 元组与文件
    PTA(BasicLevel)-1006换个格式输出整数
    数据结构与算法-图的最短路径Dijkstra
    PTA(Basic Level)-1002 写出这个数
    PTA(Basic Level)-1076 Wifi密码
    C程序设计语言笔记-第一章
    谁能笑到最后,约瑟夫环-Josephus问题求解
  • 原文地址:https://www.cnblogs.com/zhengchuzhou/p/9927962.html
Copyright © 2020-2023  润新知