函数LibraryClearanceTableSeeder的参数太少 [英] Too few arguments to function LibraryClearanceTableSeeder

查看:79
本文介绍了函数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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆