Ich muss eine Fabrik leiten 50
次,因此在 DatabseSeeder
Drinnen:
public function run() { for($i=1;$i<=50;$i++){ (new CategoryQuestionFactory($i))->create(); } }
Wie Sie sehen können, habe ich versucht, die Klasse zu benennen $i
的变量作为参数传递给 CategoryQuestionFactory
.
Dann habe ich in dieser Fabrik Folgendes versucht:
class CategoryQuestionFactory extends Factory { protected $counter; public function __construct($c) { $this->counter = $c; } /** * Define the model's default state. * * @return array<string, mixed> */ public function definition() { $question = Question::find($this->counter); return [ 'category_id' => $this->faker->numberBetween(1,22), 'question_id' => $question->id ]; } }
Aber wenn ich php artisan db:seed
im Terminal ausführe, erhalte ich diese Fehlermeldung:
Rufen Sie die Mitgliedsfunktion „pipeline()“ auf null auf
In C:xampphtdocsforumrootvendorlaravelframeworksrcIlluminateDatabaseEloquentFactoriesFactory.php:429
Was ist hier also das Problem? Wie sende ich Werte korrekt als Parameter an Factory-Klassen?
Außerdem erhalte ich in der IDE der __construct
-Methode der Fabrik die folgende Meldung:
Das Folgende ist die Fehlererfassung in der IDE:
在我看来,你想为中间表播种。播种时可以使用一些方法,其中之一是
has()
,这是我经常使用的方法。假设您想要创建 100 个问题和 5 个类别