Заводы, не найденные в Laravel 6 - PullRequest
0 голосов
/ 08 февраля 2020

Я застрял ... Я пытаюсь заставить ряд фабрик работать в Laravel 6, постоянно получаю следующую ошибку:

InvalidArgumentException with message 'Unable to locate factory with name [default] [User].'

Есть несколько других сообщений об этом на здесь и вокруг Интернета, и я попробовал все эти решения. Мой код для фабрик выглядит следующим образом:

<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\Thread;
use Faker\Generator as Faker;

$factory->define(Thread::class, function (Faker $faker) {
    return [
        'user_id' => function () {
            return factory('App\User')->create()->id;
        },
        'title' => $faker->sentence,
        'body' => $faker->paragraph
    ];
});

Я использую php ремесленник, чтобы попытаться сгенерировать записи в БД, чтобы я мог работать с остальными моими моделями et c. Команда, которую я использую, выглядит следующим образом:

factory('Thread',50)->create()

Я попытался указать пространство имен в вызове фабрики, я попытался поместить его в двойные кавычки, я попытался добавить ': : класс 'в конце. Контроллеры есть, модели есть, миграции работают, как и ожидалось, но каждый раз, когда я запускаю фабрику в тинкере, это мне не даст. Большая часть документации, которую я нашел, также ссылается на более старые версии Laravel, поэтому я не уверен, что они предоставляют мне правильный синтаксис.

Стоит отметить, что поставка UserFactory также не работает. Это бесплатная sh загрузка Laravel 6, которую я сделал сегодня для go через курс в Laracasts. Курс старше, сфокусирован на Laravel 5.4, но я могу понять, как конвертировать ... Я просто не могу заставить это работать, чтобы спасти мою жизнь, и я не могу понять, почему.

У меня есть весь загруженный проект, если вы хотите просмотреть дополнительный код: https://github.com/aarpie100/laracasts_forum

Помощь?

1 Ответ

1 голос
/ 08 февраля 2020

Попробуйте отправить Thread :: class вместо Thread в виде строки. Я думаю, что если вы отправляете как строку, это должно быть «App \ Thread».

...