2016-07-26 3 views
3

저는 Laravel의 저장소 디자인 패턴을 염두에두고 있습니다. https://github.com/andersao/l5-repository을 사용하고 있습니다.Laravel 5 SQLSTATE [42S02] : 기본 테이블 또는 뷰를 찾을 수 없습니다.

나는 내 프로젝트에 성공을 설치한다고 생각합니다. 기본 테이블이나 발견되지 뷰 : 내가 저장소와 코드를 실행할 때 내가 어떤 문제를

SQLSTATE [42S02]이 이 존재하지 않는 'test.nhanviens'1146 표 :

(SQL nhanviens SELECT * FROM) 내 데이터베이스에

표 Nhanvien하지 Nhanviens 내 코드

NhanvienRep에서 여기

\ Nhanvien.php 클래스에이 변수를 추가 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()); 
    } 
} 
+0

업데이트 할 수있는 앱 \ 엔티티를 실행하여 유사한 오류를 제거있어? – mydo47

+0

공용 함수 모델() {return "App \\ Nhanvien"; } – mydo47

+0

방금 ​​함수를 추가했지만 코드가 여전히 작동하지 않습니다. – jonny

답변

4

앱에서 ository.php

<?php 

    namespace App\Repositories; 

    use Prettus\Repository\Contracts\RepositoryInterface; 

    /** 
    * Interface NhanvienRepository 
    * @package namespace App\Repositories; 
    */ 
    interface NhanvienRepository extends RepositoryInterface 
    { 
     // 
    } 

:

protected $table = 'nhanvien'; 

설명 : 다른 이름을 명시 적으로 지정하지 않으면 "뱀 경우", 클래스의 복수 이름이 테이블 이름으로 사용됩니다. 그래서,이 경우에, Eloquent는 nhanvien 모델이 nhanviens 테이블에 레코드를 저장한다고 가정합니다.

+0

이 감사에서 테스트 및 여기에 코드입니다.하지만 내 모델에는 코드가 있습니다. 나는 같은 오류가있다. 나는 그것이 사실이 아닐 것이라고 생각한다. :) – jonny

+0

모델 클래스가 무엇을 확장합니까? 기발한, 모델 또는 열렬한? – ClearBoth

+0

내 모델 확장 모델 : D – jonny

1

official Eloquent documentation에 설명 된대로 모델 정의에서 테이블 이름을 구체적으로 설정해야합니다.

<?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'; 

을 사용 : 그것은 다음과 같은 설정하여 응용 프로그램 \ Nhanvien.php 파일입니다. 내 경우

+0

예 데이터베이스 내 모든 테이블 소문자 – jonny

+0

온라인 때 당신을 도와주세요 :( – jonny

-1

, 나는 Nhanvien \ 명령을

php artisan config:cache 
관련 문제