多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过

数据表

多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过

Model文件

多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过

工厂文件

多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过

填充文件

多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过
填充文件是仿造手册里提到的
数据库测试《Laravel 7 中文文档》

多对多的工厂模型 数据填充要怎么写啊 ,手册上没有提到过

执行填充命令会出现如下错误

  Illuminate\Database\QueryException  : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '61' for key 'PRIMARY' (SQL: insert into `chapters` (`name`, `video_num`, `status`, `sort`, `created_at`, `updated_at`, `id`) values (g1D64Vyzan, 10, 0, 75, 1970-05-26 19:46:19, 2002-05-06 07:45:32, 61))

  at /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
    665|         // If an exception occurs when attempting to run a query, we'll format the error
    666|         // message to include the bindings with SQL, which will make this exception a
    667|         // lot more helpful to the developer instead of just the database's errors.
    668|         catch (Exception $e) {
  > 669|             throw new QueryException(
    670|                 $query, $this->prepareBindings($bindings), $e
    671|             );
    672|         }
    673| 

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '61' for key 'PRIMARY'")
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129

  2   PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '61' for key 'PRIMARY'")
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:127

  3   PDOStatement::execute()
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:127

  4   Doctrine\DBAL\Driver\PDOStatement::execute()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:463

  5   Illuminate\Database\Connection::Illuminate\Database\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:662

  6   Illuminate\Database\Connection::runQueryCallback()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:629

  7   Illuminate\Database\Connection::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:464

  8   Illuminate\Database\Connection::statement()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:416

  9   Illuminate\Database\Connection::insert()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php:32

  10  Illuminate\Database\Query\Processors\Processor::processInsertGetId()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2695

  11  Illuminate\Database\Query\Builder::insertGetId()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1366

  12  Illuminate\Database\Eloquent\Builder::__call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:840

  13  Illuminate\Database\Eloquent\Model::insertAndSetId()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:805

  14  Illuminate\Database\Eloquent\Model::performInsert()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:668

  15  Illuminate\Database\Eloquent\Model::save()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php:970

  16  Illuminate\Database\Eloquent\Relations\BelongsToMany::create()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php:989

  17  Illuminate\Database\Eloquent\Relations\BelongsToMany::createMany()
      /home/vagrant/xes/database/seeds/CourseSeeder.php:22

  18  CourseSeeder::{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Support/Traits/EnumeratesValues.php:176

  19  Illuminate\Support\Collection::each()
      /home/vagrant/xes/database/seeds/CourseSeeder.php:25

  20  CourseSeeder::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  21  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  22  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  23  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  24  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  25  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  26  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:134

  27  Illuminate\Database\Seeder::__invoke()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:48

  28  Illuminate\Database\Seeder::call()
      /home/vagrant/xes/database/seeds/DatabaseSeeder.php:18

  29  DatabaseSeeder::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  30  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  31  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  32  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  33  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  34  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  35  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:134

  36  Illuminate\Database\Seeder::__invoke()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:63

  37  Illuminate\Database\Console\Seeds\SeedCommand::Illuminate\Database\Console\Seeds\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:129

  38  Illuminate\Database\Eloquent\Model::unguarded()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:64

  39  Illuminate\Database\Console\Seeds\SeedCommand::handle()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  40  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  41  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  42  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  43  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  44  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  45  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Command.php:134

  46  Illuminate\Console\Command::execute()
      /home/vagrant/xes/vendor/symfony/console/Command/Command.php:255

  47  Symfony\Component\Console\Command\Command::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Command.php:121

  48  Illuminate\Console\Command::run()
      /home/vagrant/xes/vendor/symfony/console/Application.php:1000

  49  Symfony\Component\Console\Application::doRunCommand()
      /home/vagrant/xes/vendor/symfony/console/Application.php:271

  50  Symfony\Component\Console\Application::doRun()
      /home/vagrant/xes/vendor/symfony/console/Application.php:147

  51  Symfony\Component\Console\Application::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Application.php:93

  52  Illuminate\Console\Application::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131

  53  Illuminate\Foundation\Console\Kernel::handle()
      /home/vagrant/xes/artisan:37

如果把填充文件 17行的create 换成make 又是另一种报错

   Illuminate\Database\QueryException  : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'chapter_id' cannot be null (SQL: insert into `chapter_video` (`chapter_id`, `video_id`) values (?, 201))

  at /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
    665|         // If an exception occurs when attempting to run a query, we'll format the error
    666|         // message to include the bindings with SQL, which will make this exception a
    667|         // lot more helpful to the developer instead of just the database's errors.
    668|         catch (Exception $e) {
  > 669|             throw new QueryException(
    670|                 $query, $this->prepareBindings($bindings), $e
    671|             );
    672|         }
    673| 

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'chapter_id' cannot be null")
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129

  2   PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'chapter_id' cannot be null")
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:127

  3   PDOStatement::execute()
      /home/vagrant/xes/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:127

  4   Doctrine\DBAL\Driver\PDOStatement::execute()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:463

  5   Illuminate\Database\Connection::Illuminate\Database\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:662

  6   Illuminate\Database\Connection::runQueryCallback()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:629

  7   Illuminate\Database\Connection::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:464

  8   Illuminate\Database\Connection::statement()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Connection.php:416

  9   Illuminate\Database\Connection::insert()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2651

  10  Illuminate\Database\Query\Builder::insert()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php:256

  11  Illuminate\Database\Eloquent\Relations\BelongsToMany::attach()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php:972

  12  Illuminate\Database\Eloquent\Relations\BelongsToMany::create()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php:989

  13  Illuminate\Database\Eloquent\Relations\BelongsToMany::createMany()
      /home/vagrant/xes/database/seeds/CourseSeeder.php:19

  14  CourseSeeder::{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Support/Traits/EnumeratesValues.php:176

  15  Illuminate\Support\Collection::each()
      /home/vagrant/xes/database/seeds/CourseSeeder.php:21

  16  CourseSeeder::{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Support/Traits/EnumeratesValues.php:176

  17  Illuminate\Support\Collection::each()
      /home/vagrant/xes/database/seeds/CourseSeeder.php:25

  18  CourseSeeder::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  19  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  20  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  21  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  22  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  23  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  24  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:134

  25  Illuminate\Database\Seeder::__invoke()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:48

  26  Illuminate\Database\Seeder::call()
      /home/vagrant/xes/database/seeds/DatabaseSeeder.php:18

  27  DatabaseSeeder::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  28  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  29  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  30  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  31  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  32  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  33  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:134

  34  Illuminate\Database\Seeder::__invoke()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:63

  35  Illuminate\Database\Console\Seeds\SeedCommand::Illuminate\Database\Console\Seeds\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:129

  36  Illuminate\Database\Eloquent\Model::unguarded()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:64

  37  Illuminate\Database\Console\Seeds\SeedCommand::handle()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  38  call_user_func_array()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  39  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  40  Illuminate\Container\Util::unwrapIfClosure()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90

  41  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34

  42  Illuminate\Container\BoundMethod::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  43  Illuminate\Container\Container::call()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Command.php:134

  44  Illuminate\Console\Command::execute()
      /home/vagrant/xes/vendor/symfony/console/Command/Command.php:255

  45  Symfony\Component\Console\Command\Command::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Command.php:121

  46  Illuminate\Console\Command::run()
      /home/vagrant/xes/vendor/symfony/console/Application.php:1000

  47  Symfony\Component\Console\Application::doRunCommand()
      /home/vagrant/xes/vendor/symfony/console/Application.php:271

  48  Symfony\Component\Console\Application::doRun()
      /home/vagrant/xes/vendor/symfony/console/Application.php:147

  49  Symfony\Component\Console\Application::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Console/Application.php:93

  50  Illuminate\Console\Application::run()
      /home/vagrant/xes/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131

  51  Illuminate\Foundation\Console\Kernel::handle()
      /home/vagrant/xes/artisan:37

求大神帮忙解答下要怎么改

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案
  factory(App\Models\Course::class, 50)->create();
        factory(App\Models\Chapter::class, 500)->create();
        factory(App\Models\Video::class, 5000)->create();
        $Course = App\Models\Course::all();
        $Chapter = App\Models\Chapter::all();
        $Video = App\Models\Video::all();
        $Chapter->each(function ($chapter) use ($Course,$Video) {
            $chapter->course()->attach(
                $Course->random(10)->pluck('id')->toArray()
            );
            $chapter->video()->attach(
                $Video->random(10)->pluck('id')->toArray()
            );
        });

用零一种方法实现了数据填充

3年前 评论
讨论数量: 1
  factory(App\Models\Course::class, 50)->create();
        factory(App\Models\Chapter::class, 500)->create();
        factory(App\Models\Video::class, 5000)->create();
        $Course = App\Models\Course::all();
        $Chapter = App\Models\Chapter::all();
        $Video = App\Models\Video::all();
        $Chapter->each(function ($chapter) use ($Course,$Video) {
            $chapter->course()->attach(
                $Course->random(10)->pluck('id')->toArray()
            );
            $chapter->video()->attach(
                $Video->random(10)->pluck('id')->toArray()
            );
        });

用零一种方法实现了数据填充

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!