sqlstate queryexception not illuminate found 42s02 php laravel laravel-5 repository

php - queryexception - Laravel 5 SQLSTATE[42S02]: tabla base o vista no encontrada



illuminate database queryexception 42s02 sqlstate 42s02]: base table or view not found 1146 table (3)

Como se indica en la documentación oficial de Eloquent , debe establecer específicamente el nombre de la tabla en la definición de su Modelo. Es decir, en su archivo App / Nhanvien.php configure lo siguiente:

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

o usar

protected $table = ''nhanvien'';

en cambio, si el nombre de su tabla está lleno en minúsculas.

Estoy estudiando sobre Repository Design Pattern en Laravel y estoy usando https://github.com/andersao/l5-repository para hacerlo.

Creo que instalo el éxito en mi proyecto. Pero cuando ejecuto el código con el repositorio, tengo un problema

SQLSTATE [42S02]: Tabla base o vista no encontrada: 1146 La tabla ''test.nhanviens'' no existe (SQL: select * from nhanviens )

La tabla en mi base de datos es Nhanvien no Nhanviens

Aquí en mi código

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


de App / Nhanvien.php Agregue esta variable a la clase:

protected $table = ''nhanvien'';

Explicación: El "caso de serpiente", nombre plural de la clase se utilizará como el nombre de la tabla a menos que se especifique explícitamente otro nombre. Entonces, en este caso, Eloquent asumirá que el modelo nhanvien almacena registros en la tabla nhanviens.


En mi caso, me deshice de un error similar al ejecutar el comando

php artisan config:cache