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 Illuminate\Support\Facades\DB;
    public function getInfoById($id, $sel)
    {
        return $this->model
                    ->select(DB::raw(implode(',', $sel)))
                    ->where('id', $id)
                    ->first();
    }

5、新增StudentService.php

<?php

namespace App\Services;

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 App\Http\Controllers;

use App\Repositories\StudentRepository;
use App\Services\StudentService;


/**
 * Class StudentsController.
 *
 * @package namespace App\Http\Controllers;
 */
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基本使用

posted @ 2018-11-08 11:14  郑楚周  阅读(848)  评论(0编辑  收藏  举报