Ich hatte Probleme in meiner App mit einem „Media“-Modell. Um zu überprüfen, ob das Problem in etwas liegt, das ich getan habe, habe ich eine neue Laravel-Installation erstellt. Dann habe ich genau die folgenden Schritte durchgeführt:
php artisan make:migration create_medis_table --create=medis
php artisan make:model Medi --no-migration
php artisan make:migration create_medias_table --create=medias
php artisan make:model Media --no-migration
php artisan migrate
serve testing.app /home/vagrant/Projects/testing/public
Dann habe ich in meiner routes.php Folgendes getan:
Route::get('/', function(){
// dd(\App\Medi::first()); //got null
dd(\App\Media::first()); //got the following error
});
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'homestead.media' doesn't exist (SQL: select * from `media` limit 1)
Habe ich etwas falsch gemacht?
PS: Ich habe das Medi-Modell nur als "Kontrollgruppe" erstellt
Das liegt daran, dass Laravel ziemlich gut darin ist, Pluralformen herauszufinden. media
ist bereits der Plural von medium
, also geht Eloquent davon aus, dass Ihre Tabelle media
heißt. Ändern Sie das entweder oder fügen Sie Ihrem Modell protected $table = 'medias'
hinzu.
Ich habe die Eigenschaft $table
bereits festgelegt. Ich habe nur versucht zu verstehen, warum das passiert ist. Ich danke dir sehr!
Danke! Ich verliere nur ein paar Stunden damit, herauszufinden, warum mein "Equipment" -Modell nicht funktioniert.
Hilfreichster Kommentar
Das liegt daran, dass Laravel ziemlich gut darin ist, Pluralformen herauszufinden.
media
ist bereits der Plural vonmedium
, also geht Eloquent davon aus, dass Ihre Tabellemedia
heißt. Ändern Sie das entweder oder fügen Sie Ihrem Modellprotected $table = 'medias'
hinzu.