Используется неверная таблица при запросе Laravel
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.main_models' doesn't exist (SQL: insert into main_models (login, pass) values (admin, 123))
При помощи миграции создал таблицу users
Использовал migrate:fresh
Хз почему, но используется таблица main_models, хотя я ее даже не создавал и нигде не указывал.
Файл Миграции
Schema::rename('main_models', 'users');
Schema::dropIfExists('main_models');
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('login');
$table->string('pass');
});
Ответы (2 шт):
Посмотрите, что у Вас в модели User, а точнее есть ли свойство
protected $table
Если у модели определить свойство так:
protected $table = 'users';
То модель обязана будет строить запросы именно к таблице с названием 'users', так же проверьте наличие этой таблицы любым менеджером (phpMyAdmin или Adminner)
Модель должна выглядеть примерно как в коде ниже. Обратите внимание на строчку protected $table = 'users'; - она предполагает указания таблицы users для модели User
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}