Можно ли изменить имя таблицы в файле миграции-laravel - PullRequest
0 голосов
/ 22 марта 2019

Я создал файл миграции, используя

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 ]

2 голосов
/ 22 марта 2019

Вы можете установить имя таблицы в модели Eloquent, если она не соответствует соглашению об именах по умолчанию. Ниже приведены документы Laravel

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

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

Тогда начальное число, использующее модель, будет использовать правильное имя таблицы.

2 голосов
/ 22 марта 2019

Имя таблицы, которая будет использоваться для модели, происходит от самой модели, а не от миграций.

Laravel предполагает, что именем таблицы для модели является snake_case имени модели.Если вы хотите использовать таблицу todoapps, просто добавьте следующую строку в модель, которая должна считывать данные из этой таблицы (вероятно, ваша модель называется ToDoApps)

protected $table = 'todoapps';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...