Comment ajuster le nombre d'objets créés dans Sequence (Laravel 8)
P粉043566314
2023-09-04 10:08:32
<p>J'essaie de créer 30 actualités à l'aide de Seeder et Factory. Mais je dois créer 10 nouvelles avec une valeur de champ non nulle <code>published_at</code>(Carbon) et d'autres nouvelles avec une valeur aléatoire (Carbon/NULL). </p>
<p>Dans la documentation, j'ai vu un exemple de ceci, qui créait 5 enregistrements avec la valeur <code>admin (Y)</code>, et 5 autres enregistrements avec la valeur <code> )</code>. </p>
<pre class="brush:php;toolbar:false;">User::factory()
->compte(10)
->état (nouvelle séquence (
['admin' => 'Y'],
['admin' => 'N'],
))
->create();</pre>
<p>Jusqu'à présent, j'utilise ce code mais je n'arrive pas à comprendre comment ajouter le nombre d'enregistrements avec une valeur de paramètre spécifique <code>published_at</code>. Par exemple, utilisez Carbon pour 10 éléments et NULL pour 20 éléments. </p>
<pre class="brush:php;toolbar:false;">/**ArticleSeeder*/
Article ::usine()
->compte(30)
->état (nouvelle séquence ([
'published_at' => Factory::create()->dateTimeBetween(
maintenant()->startOfMonth(),
maintenant()->endOfMonth()
),
]))
->create();</pre></p>
Dans une fermeture de séquence, vous avez accès à la propriété $index, qui contient le nombre d'itérations dans la séquence jusqu'à présent.
Voici la logique la plus simple que vous pouvez utiliser pour obtenir les résultats souhaités.