2017-12-07 4 views
0

Ich lerne Fremdschlüssel in Laravel zum ersten Mal .. Ich habe diese Nachricht Fehler, wenn ich Daten auf dem Formular in Tabelle einfügen. Ich denke, mein Tisch ist in Ordnung. Kannst du mir sagen, wie ich das lösen kann?QueryException SQLSTATE [42S02]: Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle

Controller:

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


} 

Tabelle:

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

} 
} 

Route:

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

fügen Sie bitte den tatsächlichen Fehler auf den Posten – lagbox

Antwort

1

Sie haben tou den Tabellennamen außer Kraft setzen ih der Admin Modell, da Sie einen anderen Tabellennamen haben .

Warum?

Weil Laravel durch convention Large annehmen wird, dass der Tabellenname admins ist.

Also, diese Linie zu Ihrem Modell hinzufügen:

protected $table = 'desas'; 
+0

i auf das Hinzufügen es haben. aber nicht arbeiten. Ich habe immer noch die gleiche Fehlermeldung @Maraboc – Atmojo211

+0

haben Sie die Datenbank migrieren, um die Tabelle an erster Stelle zu erstellen? – Maraboc

+0

Ich weiß nicht, was der erste Ort ist ... ist eine Beziehungstabelle in der Datenbank? Es tut mir leid: ((Ich bin neu in Laravel. – Atmojo211

0

Es sieht aus wie Sie nicht mit Laravel eloquent Modell Konventionen arbeiten.

Sind Sie sicher, dass das Modell Admin das Modell ist, das Sie zum Speichern von desas Daten in Ihrem Controller benötigen?

wenn die Antwort wahr Update Modell Admin mit

protected $table = 'desas'; 

Empfehlung: Versuchen Sie, die gleiche Namenskonvention zwischen den Modellen und Datenbanktabellen zu verwenden.

Weitere Informationen finden Sie unter https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions.

Empfohlene Dokumente vor weiter:

Verwandte Themen