zoukankan      html  css  js  c++  java
  • 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基本使用

  • 相关阅读:
    抽象工厂模式
    工厂模式
    简单工厂模式
    查询功能测试的测试点汇总
    网卡设置 网卡的高级设置说明
    30道python真实面试题(搜集到的,看看其实都是基础)
    测试用例设计方法--正交试验法
    小游戏:乌龟吃鱼
    Tkinter 的三大布局管理器 pack、grid 和 place用法汇总
    Python中输出字体的颜色设置
  • 原文地址:https://www.cnblogs.com/zhengchuzhou/p/9927962.html
Copyright © 2011-2022 走看看