👨‍⚕️

Laravel9.xのドキュメント

2022/08/18に公開

公式ドキュメントの力

Laravelを頑張ってる時に重宝するのが公式ドキュメント。
自分の知識 <<<<<<< 公式ドキュメント だと思ってます。

Factoryクラスがもってるメソッド

https://laravel.com/docs/9.x/eloquent-factories#introduction
Factoryクラスは

'name' => fake()->name(),

fakeメソッドを持っていると書いてるが実際は持っていない。
そんなこと書いてなかった。fakeヘルパを使うといいよってちゃんと書いてあった。

Factory.php
/**
 * Create a new factory instance.
 *
 * @param  int|null  $count
 * @param  \Illuminate\Support\Collection|null  $states
 * @param  \Illuminate\Support\Collection|null  $has
 * @param  \Illuminate\Support\Collection|null  $for
 * @param  \Illuminate\Support\Collection|null  $afterMaking
 * @param  \Illuminate\Support\Collection|null  $afterCreating
 * @param  string|null  $connection
 * @return void
 */
public function __construct($count = null,
                            ?Collection $states = null,
                            ?Collection $has = null,
                            ?Collection $for = null,
                            ?Collection $afterMaking = null,
                            ?Collection $afterCreating = null,
                            $connection = null)
{
    $this->count = $count;
    $this->states = $states ?? new Collection;
    $this->has = $has ?? new Collection;
    $this->for = $for ?? new Collection;
    $this->afterMaking = $afterMaking ?? new Collection;
    $this->afterCreating = $afterCreating ?? new Collection;
    $this->connection = $connection;
    $this->faker = $this->withFaker();
}

Factoryクラスはインスタンス時にfakerプロパティにFakerインスタンスをセットをしているだけ。

実際に使いたかったほう

'name' => $this->faker->name(),

fakerプロパティを使用すればやりたいことは叶う。

Discussion