es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sembrador de Laravel – Error de índice de secuencia

No estoy seguro si esto es un error o una falta de comprensión de mi parte…

Al leer la documentación sobre secuencias y relaciones, habría esperado que el código siguiente reinicie el $sequence->index dentro de la fábrica de informes después de que se cree cada usuario, sin embargo persiste para todos los usuarios.

El efecto deseado debería ser que cada usuario tenga 90 días de informes a partir de ahora, sin embargo, el incremento sigue creciendo, lo que significa que al final los informes del último usuario tienen una antigüedad de 900 días (no 90).


<pre><code>\App\Models\Recipient::factory(10) ->sequence(fn ($sequence) => [ 'player_id' => $playerIds[$sequence->index] ]) ->has( \App\Models\Report::factory(90) ->sequence(fn ($sequence) => [ 'created_at' => now()->subDay($sequence->index) ]) ->state(fn (array $attributes, \App\Models\Recipient $recipient) => [ 'player_id' => $recipient->player_id, 'user_id' => $recipient->user_id ]) ) ->create([ 'user_id' => 34 ]); </code></pre>

Creo que esto es un error en la biblioteca misma, muy probablemente debido a algún valor estático, ¿o he entendido mal la documentación?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que $sequence->index no se reinicia para cada usuario en la fábrica de informes, según se documenta en la función de secuencias de Laravel. Esto provoca que el incremento crezca y que los informes de los últimos usuarios terminen hace 900 días en lugar de 90.

    Es posible que esto sea un fallo en la propia biblioteca, posiblemente debido a un valor estático que no se reinicia. Sin embargo, también es posible que haya una falta de comprensión en la implementación del código o en la documentación.

    Se podría requerir una investigación y pruebas adicionales para identificar y resolver correctamente este problema.

Comments are closed.