Estaba teniendo problemas en mi aplicación con un modelo "Media". Para verificar si el problema estaba en algo que hice, creé una nueva instalación de Laravel. Entonces hice exactamente los siguientes pasos:
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
Luego en mi route.php hice:
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)
Hice algo mal?
PD: Creé el modelo Medi solo como un "grupo de control"
Eso es porque Laravel es bastante bueno para descifrar plurales. media
ya es el plural de medium
por lo que Eloquent asumirá que su tabla se llama media
. Cambie eso o agregue protected $table = 'medias'
a su modelo.
Ya configuré la propiedad $table
. Solo estaba tratando de entender por qué estaba pasando eso. ¡Muchas gracias!
¡Gracias! solo perdí un par de horas tratando de averiguar por qué mi modelo de "Equipo" no funcionaba.
Comentario más útil
Eso es porque Laravel es bastante bueno para descifrar plurales.
media
ya es el plural demedium
por lo que Eloquent asumirá que su tabla se llamamedia
. Cambie eso o agregueprotected $table = 'medias'
a su modelo.