是否可以在迁移文件-laravel中更改表名

时间:2019-03-22 17:07:41

标签: php laravel laravel-5

我使用

创建了一个迁移文件

php artisan make:migration create_todoapps_table

以表名to_do_apps创建迁移文件

(Schema::create('to_do_apps', function (Blueprint $table) {...})

但是我不希望表名是to_do_apps

所以我尝试将其手动更改为todoapps

(Schema::create('todoapps', function (Blueprint $table) {...})

进行迁移时,此方法工作正常,并且正在创建具有todoapps的表。但是,在执行工厂和种子操作时,它试图将数据添加到旧表名to_do_apps本身,这会导致错误,因为该表不可用。

有没有办法解决这个问题?

如何在不破坏任何内容的情况下更改迁移文件中的表名?

2 个答案:

答案 0 :(得分:2)

用于模型的表的名称来自模型本身,而不是来自迁移。

Laravel假定模型表的名称是模型名称的snake_case。如果要使用表todoapps,只需将以下行添加到应从该表中读取数据的模型中(可能您的模型称为ToDoApps

protected $table = 'todoapps';

答案 1 :(得分:2)

如果表名不是默认的命名约定,则可以在Eloquent模型中进行设置。以下是Laravel Docs

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'my_flights';
}

使用模型的种子将使用正确的表名。