函数LibraryClearanceTableSeeder的参数太少 [英] Too few arguments to function LibraryClearanceTableSeeder
问题描述
我已经创建了StudentTableSeeder来为学生表添加种子,同时为每个学生播种时,我想生成一个学生的图书馆和费用证明书,无论何时由StudentTableSeeder创建一个学生.我收到此错误"FatalThrowableError:函数LibraryClearanceTableSeeder :: run()的参数太少,传递了0个且恰好期望有1个"
I have created a StudentTableSeeder to seed my Students table, while seeding for each student, I want to generate the student's library and fee clearances whenever a student is created by the StudentTableSeeder. I get this error "FatalThrowableError :Too few arguments to function LibraryClearanceTableSeeder::run(), 0 passed and exactly 1 expected"
这是StudentTableSeeder代码
This is StudentTableSeeder code
use App\Models\Student;
use Illuminate\Database\Seeder;
class StudentsTableSeeder extends Seeder
{
protected $students = [
[
'id' => 1,
'firstname' => 'Emmanuel',
'middlename' => 'kwame',
'lastname' => 'Agyapong',
'index_no' => 'ANU16280111',
'nationality' => 0,
'regular_or_weekend' => 1,
'image' => null,
'course_id' => 1,
],
];
public function run()
{
foreach ($this->students as $index => $student)
{
$result = Student::create($student);
if (!$result) {
$this->command->info("Insert failed at record $index.");
return;
}
$this->call(LibraryClearanceTableSeeder::class)->run($students['student_id']);
}
$this->command->info('Inserted '.count($this->students). ' records');
}
}
这是我的LibraryClearanceTableSeeder
This is my LibraryClearanceTableSeeder
use App\Models\Library;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class LibraryClearanceTableSeeder extends Seeder
{
public function run($studentid)
{
DB::table('libraries')->create([
'student_id' => $studentid,
'borrowed' => 0,
]);
}
}
推荐答案
在播种器中使用静态函数
use static function in seeder
这是StudentTableSeeder代码
This is StudentTableSeeder code
use App\Models\Student;
use Illuminate\Database\Seeder;
class StudentsTableSeeder extends Seeder
{
protected $students = [
[
'id' => 1,
'firstname' => 'Emmanuel',
'middlename' => 'kwame',
'lastname' => 'Agyapong',
'index_no' => 'ANU16280111',
'nationality' => 0,
'regular_or_weekend' => 1,
'image' => null,
'course_id' => 1,
],
];
public function run()
{
foreach ($this->students as $index => $student)
{
$result = Student::create($student);
if (!$result) {
$this->command->info("Insert failed at record $index.");
return;
}
LibraryClearanceTableSeeder::setLib($student['id']);
}
$this->command->info('Inserted '.count($this->students). ' records');
}
}
这是LibraryClearanceTableSeeder
This is LibraryClearanceTableSeeder
use App\Models\Library;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class LibraryClearanceTableSeeder extends Seeder
{
public function run()
{
}
public static function setLib($studentid)
{
DB::table('libraries')->create([
'student_id' => $studentid,
'borrowed' => 0,
]);
}
}
这篇关于函数LibraryClearanceTableSeeder的参数太少的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!