2017-12-07 12 views
0

처음으로 laravel에서 외래 키를 학습합니다. 테이블에 데이터를 삽입 할 때이 메시지 오류가 발생합니다. 내 테이블은 괜찮다고 생각해. 이 문제를 어떻게 해결할 수 있는지 말해 줄 수 있습니까?QueryException SQLSTATE [42S02] : 기본 테이블 또는 뷰를 찾을 수 없음 : 1146 테이블

컨트롤러 :

public function tambah(Request $request){ 
    $a = new Admin; 
    $this->validate($request, ['nama'=>'required|unique:ab']); 
    $a->id = $request->id; 
    $a->nama = $request->nama; 
    $a->save(); 

    return redirect()->to('admin/data_desa')->with('success','Data berhasil ditambahkan'); 
} 


} 

테이블 :

class CreateDesasTable extends Migration 
{ 
/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    // 
    Schema::dropIfExist('desas'); 
    Schema::create('desas', function(Blueprint $table){ 
    $table->increments('id'); 
    $table->string('nama'); 

}); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    // 
    Schema::dropIfExist('desas'); 

} 
} 

경로 : 다른 테이블 이름이 있기 때문에 당신의 Admin 모델 IH 테이블 이름을 오버라이드 (override) 이용 약관이

Route::group(['middleware' => 'web'], function(){ 
Route::group(['prefix' => 'tanitani'], function(){ 
    Route::get('admin', '[email protected]'); 
    Route::get('admin/data_desa','[email protected]'); 
    Route::post('admin/data_desa', '[email protected]'); 
+0

에 추가로 내가 가진 후 – lagbox

답변

1

.

왜?

convelion에 의해 Laravel은 테이블 이름이 admins이라고 가정합니다.

그래서 모델에이 줄을 추가 : 당신이 laravel 웅변 모델 규칙을 작동하지 않는 것처럼

protected $table = 'desas'; 
+0

에 실제 오류를 추가하십시오. 그러나 일하지 않습니다. 나는 여전히 같은 메시지 오류 @ Maraboc – Atmojo211

+0

당신은 처음에 테이블을 만들 데이터베이스를 마이그레이션 했습니까? – Maraboc

+0

나는 첫번째 장소의 평균을 알지 못한다 ... 데이터베이스에 관계 테이블이 있는가? 미안 해요 : ((laravel. – Atmojo211

0

것 같습니다.

컨트롤러에 desas 데이터를 저장해야하는 모델이 Admin입니까?

대답은

protected $table = 'desas'; 

추천와 진정한 업데이트 모델 관리자 인 경우 : 모델과 데이터베이스 테이블 사이의 같은 이름의 규칙을 사용해보십시오.

자세한 내용은 https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions을 참조하십시오.

권장 문서는 이전에 계속 :