Как создать экземпляр пользователя на другой фабрике в Laravel?

Я пытаюсь создать некоторые тестовые данные, используя фабрики в Laravel 5.5. Я управляю этим

factory('App\Thread', 3)->create();

Я получаю сообщение об ошибке Столбец user_id не может быть пустым

Column 'user_id' cannot be null (SQL: insert into thread
s` (user_id, title, body, updated_at, created_at) values (, Quia modi
aperiam eos aut., Sed voluptate ut quia ut. Et accusamus eaque est amet. Veniam
consectetur exercitationem id facere., 2017-09-04 04:38:11, 2017-09-04 04:38:11)
)'

Фабрика My Thread создает нового пользователя экземпляра, но, похоже, не возвращает значения.

use Faker\Generator as Faker;

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

return [
    'user_id' => function () {
                return factory('App\User')->make()->id;
    },
    'title' => $faker->sentence,
    'body' => $faker->paragraph,
];
});

Я вообще не модифицировал пользовательскую фабрику. Я скопировал и вставил из документации и не могу ее получить. Любая помощь будет принята с благодарностью. Я новичок в этом, и я уверен, что это что-то простое.


person NinjaCoder    schedule 04.09.2017    source источник
comment
Вы должны использовать - ›create () вместо -› make () в фабрике потоков.   -  person Aaron Fahey    schedule 04.09.2017
comment
В чем разница? В любом случае я вижу, что в базу данных добавлены три пользователя. Я думал, что make их не спасет.   -  person NinjaCoder    schedule 04.09.2017


Ответы (1)


Я печатал

factory(App\Thread::class, 3)->create();

вместо того

factory('App\Thread', 3)->create();

Я не знал, что они разные.

person NinjaCoder    schedule 04.09.2017