Сеялка Laravel не работает на клонированном хранилище

Заполнение базы данных с использованием фабрик моделей laravel прекрасно работает с моим локальным (оригинальным) файлом проекта repo/laravel, но когда я клонирую удаленный из github, seeding выдает такую ​​ошибку:

Столбец не найден: 1054 Неизвестный столбец "hr" в "списке полей" (SQL: вставить в categories (slug, hr, de, updated_at, created_at) v alues ​​(КАТЕГОРИЯ-1, Название для категории-1 по языку HR, Название для категории-1 по языку, 2018-07-09 11:19:45, 2018-07-09 11:19:4 5))

Миграции работают без проблем, как на локальном, так и на клонированном репо, я использую пакет Laravel Transhable. Поля hr и de являются локалями

Я пытался нажать на удаленный, но он говорит, что все в порядке, я также пытался вручную скопировать сеялку и фабрику из локальной в удаленную / клонированную папку, но она все еще не работает.

(следующие файлы идентичны на оригинальном и клонированном репо)

База данных сеялки:

public function run()
{
     $this->call([
        LanguagesTableSeeder::class, //works
        CategoriesTableSeeder::class, //error
        MealsTableSeeder::class  //error
     ]);
}

Категория сеялки:

public function run()
{
    factory(App\Category::class, 5)->create();
}

Категория фабрика:

use Faker\Generator as Faker;

использовать приложение \ язык;

$factory->define(App\Category::class, function (Faker $faker) {

 static $counter = 1;
 $locales = Language::pluck('lang');
 $data = array('slug' => 'CATEGORY-'.$counter);

 foreach ($locales as $locale) {
    $data[$locale] = [
        'title' => 'Title for category-' .$counter. ' on '. $locale . ' language'
    ];
 }
 $counter++;


return $data;
});

Обновить:

LanguageTableSeeder:

public function run()
{
    if(!App\Language::count()) {

        $defaultLanguages = array('hr','en','de');

        foreach ($defaultLanguages as $language) {
            App\Language::create([
                'lang' => $language
            ]);
        }
    }
}

Категории миграции:

public function up()
{
    Schema::create('categories', function (Blueprint $table) {
        $table->increments('id');
        $table->string('slug');
        $table->timestamps();
    });

     Schema::create('category_translations', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('category_id')->unsigned();
        $table->string('locale')->index();
        $table->string('title');
        $table->unique(['category_id','locale']);
        $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
    });
}

Ссылка на репозиторий

1 ответ

Решение

Хорошо, так что после нескольких часов или пробуя все, я вроде нашел решение.

Что-то не так с каталогом поставщика в клонированном репозитории.

Когда я удалил vendor из.gitignore, он внезапно начал работать, вместо того, чтобы использовать composer install для создания vendor в клоне, я просто загрузил полностью оригинального vendor в github.

Другие вопросы по тегам