File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed
src/Illuminate/Database/Eloquent/Factories
types/Database/Eloquent/Factories Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -708,7 +708,7 @@ public function modelName()
708
708
/**
709
709
* Specify the callback that should be invoked to guess model names based on factory names.
710
710
*
711
- * @param callable(): class-string<\Illuminate\Database\Eloquent\Model|TModel> $callback
711
+ * @param callable(self ): class-string<\Illuminate\Database\Eloquent\Model|TModel> $callback
712
712
* @return void
713
713
*/
714
714
public static function guessModelNamesUsing (callable $ callback )
@@ -743,7 +743,7 @@ public static function factoryForModel(string $modelName)
743
743
/**
744
744
* Specify the callback that should be invoked to guess factory names based on dynamic relationship names.
745
745
*
746
- * @param callable(): class-string<\Illuminate\Database\Eloquent\Model|TModel > $callback
746
+ * @param callable(class-string<\Illuminate\Database\Eloquent\Model> ): class-string<\Illuminate\Database\Eloquent\Factories\Factory > $callback
747
747
* @return void
748
748
*/
749
749
public static function guessFactoryNamesUsing (callable $ callback )
Original file line number Diff line number Diff line change @@ -183,12 +183,22 @@ public function definition()
183
183
// assertType('class-string<User>', $factory->modelName());
184
184
assertType ('class-string<Illuminate\Database\Eloquent\Model> ' , $ factory ->modelName ());
185
185
186
- $ factory ->guessModelNamesUsing (function () {
187
- return User::class;
186
+ Factory::guessModelNamesUsing (function (Factory $ factory ) {
187
+ return match (true ) {
188
+ $ factory instanceof UserFactory => User::class,
189
+ default => throw new LogicException ('Unknown factory ' ),
190
+ };
188
191
});
189
192
190
193
$ factory ->useNamespace ('string ' );
191
194
192
195
assertType (Factory::class, $ factory ::factoryForModel (User::class));
193
196
194
197
assertType ('class-string<Illuminate\Database\Eloquent\Factories\Factory> ' , $ factory ->resolveFactoryName (User::class));
198
+
199
+ Factory::guessFactoryNamesUsing (function (string $ modelName ) {
200
+ return match ($ modelName ) {
201
+ User::class => UserFactory::class,
202
+ default => throw new LogicException ('Unknown factory ' ),
203
+ };
204
+ });
You can’t perform that action at this time.
0 commit comments