Laravel 5 SQLSTATE [42S02]:找不到基表或视图

jon*_*nny 4 php repository laravel laravel-5

我正在研究Laravel中的存储库设计模式,并且正在使用https://github.com/andersao/l5-repository做到这一点。

我认为我在项目中取得了成功。但是当我使用存储库运行代码时,我遇到了一些问题

SQLSTATE [42S02]:找不到基本表或视图:1146表'test.nhanviens'不存在(SQL:select * from nhanviens

我数据库中的表是Nhanvien而不是Nhanviens

在我的代码中

NhanvienRepository.php

<?php

   namespace App\Repositories;

   use Prettus\Repository\Contracts\RepositoryInterface;

   /**
    * Interface NhanvienRepository
    * @package namespace App\Repositories;
    */
   interface NhanvienRepository extends RepositoryInterface
   {
       //
   }
Run Code Online (Sandbox Code Playgroud)

NhanvienRepositoryEloquent.php

<?php

 namespace App\Repositories;

use Prettus\Repository\Eloquent\BaseRepository;
use Prettus\Repository\Criteria\RequestCriteria;
use App\Repositories\NhanvienRepository;
use App\Entities\Nhanvien;
use App\Validators\NhanvienValidator;

/**
 * Class NhanvienRepositoryEloquent
 * @package namespace App\Repositories;
 */
class NhanvienRepositoryEloquent extends BaseRepository implements NhanvienRepository
{
    /**
     * Specify Model class name
     *
     * @return string
     */
    public function model()
    {
        return Nhanvien::class;
    }



    /**
     * Boot up the repository, pushing criteria
     */
    public function boot()
    {
        $this->pushCriteria(app(RequestCriteria::class));
    }
}
Run Code Online (Sandbox Code Playgroud)

DataController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\nhanvien;
use App\Repositories\NhanvienRepository;

class DataController extends Controller
{
    protected $repository;

    public function __construct(NhanvienRepository $repository){
        $this->repository = $repository;
    }

    public function DanhSach(){
        var_dump($this->repository->all());
    }
}
Run Code Online (Sandbox Code Playgroud)

Cle*_*oth 5

从App \ Nhanvien.php将此变量添加到类中:

 protected $table = 'nhanvien';
Run Code Online (Sandbox Code Playgroud)

说明:除非明确指定其他名称,否则将使用“蛇形”类的类的复数名称作为表名称。因此,在这种情况下,Eloquent将假设nhanvien模型将记录存储在nhanviens表中。