Saya perlu mengusahakan kilang 50
次,因此在 DatabseSeeder
Dalaman:
public function run() { for($i=1;$i<=50;$i++){ (new CategoryQuestionFactory($i))->create(); } }
Seperti yang anda lihat, saya cuba menamakan kelas $i
的变量作为参数传递给 CategoryQuestionFactory
.
Kemudian di kilang ini saya mencuba ini:
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 ]; } }
Tetapi apabila saya menjalankan php artisan db:seed
di terminal, saya mendapat ralat ini:
Panggil talian paip fungsi ahli() pada null
Dalam C:xampphtdocsforumrootvendorlaravelframeworksrcIlluminateDatabaseEloquentFactoriesFactories.php:429
Jadi apa yang berlaku di sini? Bagaimana untuk menghantar nilai dengan betul sebagai parameter ke kelas kilang?
Selain itu, dalam IDE kaedah __construct
kilang, saya mendapat mesej berikut:
Berikut ialah tangkapan ralat dalam IDE:
Nampaknya anda ingin menyemai jadual perantaraan. Terdapat beberapa kaedah yang boleh anda gunakan semasa menyemai benih, salah satunya ialah
has()
iaitu kaedah yang sering saya gunakan.Andaikan anda ingin mencipta 100 soalan dan 5 kategori