laravel 表不存在,显示一个实际上不存在的表

1l5u6lss  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(210)

我在和拉拉威尔合作一个项目。
我使用kitloong/laravel-migrations-generator导入了我的数据库。
我正在尝试为表“utilizador”设置种子。
当运行php artisan migrate:fresh --seed时,它返回下面的错误。问题是它说没有找到表“utilizadors”,尽管表是“utilizador”(没有s)。我找不到我的文件中使用“utilizador”的任何用法,所以我真的不知道错误在哪里。
数据库状态[42 S 02]:未找到基表或视图:1146表格'smm_centro_dia.utilizadors'不存在(连接:mysql,SQL语言:插入到“实用程序”中(“用户名”、“电子邮件”、“psw”、“grp”、"已记录“、”dh_registo“、”已更新"、“已创建”)值(管理员,admin@gmail.com,$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi,0,0,2023 - 03 - 17 14:29:51,2023 - 03 - 17 14:29:51,2023-03-17 14:29:51)
以下是代码:

数据库种子

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call(RoleSeeder::class);
        $this->call(AdminSeeder::class);
    }
}

管理种子

class AdminSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $user = Utilizador::create([
            'username' => 'admin',
            'email' => 'admin@gmail.com',
            'psw' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'grp' => 0,
            'is_logged' => 0,
            'dh_registo' => now()
        ]);
        $user->assignRole('admin', 'colaborador');
    }
}

角色播种机

class RoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        Role::create(['name' => 'admin']);
        Role::create(['name' => 'colaborador']);
        Role::create(['name' => 'utilizador']);
    }
}

我试着搜索用法,重写代码,没有任何效果。

wr98u20j

wr98u20j1#

Laravel内部命名约定:
按照惯例,“snake case”(类的复数名称)将用作表名,除非显式指定了另一个名称。因此,在这种情况下,Eloquent将假设Flight模型将记录存储在flights表中,而AirTrafficController模型将记录存储在air_traffic_controllers表中。
如果模型的相应数据库表不符合此约定,可通过在模型上定义表属性来手动指定模型的表名。
例如,拉腊维尔给:

<?php
 
namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
 
class Flight extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'my_flights';
}

您可以在docs. Ps上查看更多信息:你有EN和PT的模型,EN的种子,只在项目中使用一种语言。

相关问题