10 months ago

Factory manual incrementing

Posted 10 months ago by spacedog4

I need to set the primary key for my table manually, so I created a function to get the last record and return it +1 (cause my table has "multiple primary keys")

But the problem is that I can't use the multiple method from the factory cause it returns all the same key


use Faker\Generator as Faker;

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


    if (!$empresa = \App\Empresa::inRandomOrder()->first()) {
        $empresa = factory('App\Empresa')->create(array_only($overrides, \App\Empresa::getPrimaryKeyGroup()));

    return [
        'codigoempresa' => $empresa->codigoempresa,
        'codigoce'      => \App\Controleexportacao::generateKey(), // Here I get the last record key + 1
        'nometabela'    => $faker->word,
        'data'          => $faker->date(),
        'hora'          => $faker->time(),
        'tipo'          => $faker->randomElement(\App\Controleexportacao::tipos()->all()),
        'exportado'     => array_random(['S', 'N']),

I've found this solution but in my case this doesn't work, cause I can't do something like this

static $codigoce = \App\Controleexportacao::generateKey();

Please sign in or create an account to participate in this conversation.