So passen Sie die Anzahl der in Sequence erstellten Objekte an (Laravel 8)
P粉043566314
2023-09-04 10:08:32
<p>Ich versuche, 30 Nachrichten mit Seeder und Factory zu erstellen. Aber ich muss 10 Nachrichten mit einem Feldwert ungleich Null <code>published_at</code>(Carbon) und andere Nachrichten mit einem Zufallswert (Carbon/NULL) erstellen. </p>
<p>In der Dokumentation habe ich ein Beispiel dafür gesehen, das 5 Datensätze mit dem Wert <code>admin (Y)</code> und weitere 5 Datensätze mit dem Wert <code>(N) erstellt hat )</code>. </p>
<pre class="brush:php;toolbar:false;">User::factory()
->Anzahl(10)
->state(neue Sequenz(
['admin' => 'Y'],
['admin' => 'N'],
))
->create();</pre>
<p>Bisher verwende ich diesen Code, kann aber nicht herausfinden, wie ich die Anzahl der Datensätze mit einem bestimmten Parameterwert <code>published_at</code> hinzufügen kann. Verwenden Sie beispielsweise Carbon für 10 Elemente und NULL für 20 Elemente. </p>
<pre class="brush:php;toolbar:false;">/**ArtikelSeeder*/
Artikel::factory()
->Anzahl(30)
->state(neue Sequenz([
'published_at' => Factory::create()->dateTimeBetween(
now()->startOfMonth(),
now()->endOfMonth()
),
]))
->create();</pre></p>
在序列闭包中,您可以访问$index属性,该属性包含迄今为止通过序列进行的迭代次数。
以下是您可以使用的最简单的逻辑来实现您想要的结果。