我需要運行工廠 50
次,因此在 DatabseSeeder
內:
public function run() { for($i=1;$i<=50;$i++){ (new CategoryQuestionFactory($i))->create(); } }
如您所看到的,我嘗試將名為 $i
的變數作為參數傳遞給 CategoryQuestionFactory
類別。
然後在這家工廠,我嘗試了這個:
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 ]; } }
但是當我在終端機上執行 php artisan db:seed
時,出現此錯誤:
在 null 上呼叫成員函數 pipeline()
#在 C:xampphtdocsforumrootvendorlaravelframeworksrcIlluminateDatabaseEloquentFactoriesFactory.php:429
那麼這裡出了什麼問題呢?如何正確地將值作為參數傳送給工廠類別?
此外,在該工廠的 __construct
方法的 IDE 中,我收到以下訊息:
以下是 IDE 中的錯誤捕獲:
在我看來,你想為中間表播種。播種時可以使用一些方法,其中之一是
has()
,這是我經常使用的方法。假設您想要建立 100 個問題和 5 個類別