【Laravel】Factoryで例外を作るやつ

【Laravel】Factoryで例外を作るやつ

Laravelで一部、こっちが指定した情報でデータを作成してほしいことがあったので、Factoryに例外を作成する方法をご紹介します。

今回は「メール確認が終了していないユーザーを作成する」という趣旨で作成します。

Factoryを修正

Factoryファイルのdefinitionメソッドを普通に埋めた後に、新しくメソッドを作成しましょう。

名前は分かり易ければなんでもOKです👍

例外のFactoryを実行

作成した例外のFactoryを実行しましょう。

通常のFactoryは以下のコマンドでSeederから実行します。

これを先ほど作成した例外バージョンで実行する方法は以下です。

factoryメソッドを呼んで、createメソッドで実際に作成する前に、例外のメソッド(今回で言うとemail_not_verifiedメソッド)を間に噛ませてあげるとその例外が作成できます👍

上記を書いたあとはSeederを実行してください。(下記の例だとDBのレコードは全部リセットされます)

通常も例外も両方作成する

必ずしもどちらか一方しか実行できないわけではなくて、もちろん両方とも同時に実行できます。

何を言っているかと言うのは、以下のコードを見たら分かると思います。

これをすると、通常のユーザーが10個と、メール確認が終了していないユーザーが1個作成されます。