Sequenceで作成するオブジェクトの数を調整する方法(Laravel8)
P粉043566314
2023-09-04 10:08:32
<p>Seeder と Factory を使用して 30 件のニュース項目を作成しようとしています。ただし、null 以外のフィールド値 <code>published_at</code>(Carbon) を持つ 10 個のニュース項目と、ランダムな値 (Carbon/NULL) を持つ他のニュース項目を作成する必要があります。 </p>
<p>ドキュメントには、この例があり、値が <code>admin (Y)</code> のレコードが 5 つ作成され、値が <code> admin(N) のレコードが 5 つ作成されています。 )</コード>。 </p>
<pre class="brush:php;toolbar:false;">User::factory()
->カウント(10)
->state(新しいシーケンス(
['管理者' => 'Y'],
['管理者' => 'N'],
))
->create();
<p>これまでのところ、このコードを使用していますが、特定のパラメータ値 <code>published_at</code> を持つレコードの数を追加する方法がわかりません。たとえば、10 項目には Carbon を使用し、20 項目には NULL を使用します。 </p>
<pre class="brush:php;toolbar:false;">/**記事シーダー*/
記事::ファクトリー()
->カウント(30)
->state(new シーケンス([
'published_at' => Factory::create()->dateTimeBetween(
now()->startOfMonth()、
now()->endOfMonth()
)、
]))
->create();</pre></p>
シーケンス クロージャでは、これまでのシーケンスの反復回数を含む $index プロパティにアクセスできます。
以下は、望ましい結果を達成するために使用できる最も単純なロジックです。
リーリー