Фабрика моделей фабрики Laravel с помощью метода create_at и updated_at

Так что я работал с семенами ларавеллы и наткнулся на эту удивительную статью о том, как их ускорить.

http://bensmith.io/speeding-up-laravel-seeders

Я проверил этот метод, и да, время посева сократилось до половины для большинства моих семян.

Единственная проблема, с которой я сталкиваюсь, также описана в том, что make() Метод на заводе не генерирует временные метки, и некоторые из моих тестов начинают жаловаться сейчас.

Вместо того, чтобы модифицировать все мои семена, чтобы сделать их временными метками вручную, есть ли способ заставить make() способ на фабриках сделать это для меня?

Пример семян

<?php

use Illuminate\Database\Seeder;

use Uppdragshuset\AO\Tenant\Models\CommentType;
use Uppdragshuset\AO\Tenant\Models\User;
use Uppdragshuset\AO\Tenant\Models\Document;
use Uppdragshuset\AO\Tenant\Models\Comment;

use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Output\ConsoleOutput;

class CommentTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$output = new ConsoleOutput;
$bar = new ProgressBar($output);
$this->command->info("Seeding Orders");
$bar->setFormat('verbose');
$bar->start();

$comment_types = CommentType::all(['id']);
$users = User::all(['id']);
$documents = Document::all(['id']);

$comments = [];

for($i = 0; $i < 50; $i++){
$bar->advance();
$comments[] = factory(Comment::class)->make([
'comment_type_id' => $comment_types->shuffle()->first()->id,
'user_id' => $users->shuffle()->first()->id,
'commentable_id' => $documents->shuffle()->first()->id,
])->toArray();
}

Comment::insert($comments);

$bar->finish();
$this->command->info("\n\r");
}
}

Так что у меня есть возможность поставить

'created_at' => Carbon\Carbon::now(),
'updated_at' => Carbon\Carbon::now(),

в семени и всех других, но есть ли лучший способ переопределить make метод?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]