Laravel 5 SQLSTATE : базовая таблица или представление не найдены

Я изучаю шаблон шаблона репозитория в Laravel, и для этого я использую https://github.com/andersao/l5-repository .

Я думаю, что я устанавливаю успех в своем проекте. Но когда я запускаю код с репозиторием, у меня есть некоторые проблемы

SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица «test.nhanviens» не существует (SQL: select * from nhanviens )

Таблица в моей базе данных Nhanvien not Nhanviens

Здесь в моем коде

NhanvienRepository.php

 <?php namespace App\Repositories; use Prettus\Repository\Contracts\RepositoryInterface; /** * Interface NhanvienRepository * @package namespace App\Repositories; */ interface NhanvienRepository extends RepositoryInterface { // } 

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)); } } 

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()); } } 

из App \ Nhanvien.php Добавьте эту переменную в класс:

  protected $table = 'nhanvien'; 

Объяснение: «Змей-случай», множественное имя класса будет использоваться как имя таблицы, если другое имя не указано явно. Таким образом, в этом случае Eloquent будет считать, что модель nhanvien хранит записи в таблице nhanviens.

Как указано в официальной документации Eloquent, вам нужно конкретно указать имя таблицы в определении модели. То есть в вашем файле App \ Nhanvien.php установлено следующее:

 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Nhanvien extends Model { /** * The table associated with the model. * * @var string */ protected $table = 'Nhanvien'; } 

или использовать

 protected $table = 'nhanvien'; 

вместо этого, если ваше имя таблицы заполнено в нижнем регистре.

В моем случае я избавился от подобной ошибки, выполнив команду

 php artisan config:cache