【问题标题】:Missing argument 2 error using db:seed使用 db:seed 时缺少参数 2 错误
【发布时间】:2015-09-26 09:17:24
【问题描述】:

我从一位同事那里收到了一个项目,它是用 Laravel 编写的,我没有任何经验。现在有了一个教程,我能够制作一个数据库和表格以及一些数据,但是在使用 php artisian db:seed 时我收到了同样的错误两次告诉我我缺少Illuminate\databas\eloquent\model:setAttribute() 的论点2,我找不到我的错,这就是我决定在这里问的原因,也是因为我是个菜鸟。

票务表

CREATE TABLE IF NOT EXISTS `ticket` (
  `idTickets` int(10) unsigned NOT NULL,
  `reference` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `subject` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `mail` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `content` longtext COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

是的,ticket table 更长并且有一些主键,只是为了以防万一。

迁移代码:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTicketsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('ticket', function(Blueprint $table)
        {
            $table->increments('id');
                        $table->string('reference');
                        $table->string('subject');
                        $table->string('name');
                        $table->string('mail');
                        $table->longtext('content');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('ticket');
    }

}

用户数据:

<?php

// Composer: "fzaninotto/faker": "v1.3.0"DB::table('users')->truncate();
use Faker\Factory as Faker;

class SeedTicketsTableTableSeeder extends Seeder {

    public function run()
    {
        DB::table('ticket')->truncate();

        $tickets = [
            [
                            `reference`   => 'randomcode1',
                            `subject`   => 'test',
                            `name`      => 'testor',
                            `mail`      => 'testor@mail.nl',
                            `content`   => 'Lorem ipsum dolor sit amet'

            ]
        ];

        foreach($tickets as $ticket){
            Ticket::create($ticket);
        }

        foreach(range(1, 10) as $index)
        {
            SeedTicketsTable::create([

            ]);
        }
    }

}

我还在databaseseeder.php = $this-&gt;call('SeedTicketsTableTableSeeder');中添加了以下行

我是否遗漏了一些代码,或者这只是一个简单的错字?提前感谢您的帮助。我检查了this 相关问题,但这似乎没有多大帮助。

编辑

按内容添加 ' 但是我仍然收到上述错误。

【问题讨论】:

  • 为什么您的创建表查询显示键为“idTickets”,而您的迁移显示键为“id”?
  • 我认为我们需要查看您的 Ticket 模型。如果你能提出完整的错误,那就太好了。

标签: php mysql laravel


【解决方案1】:

错字。缺少'在线'内容'。

use Faker\Factory as Faker;

class SeedTicketsTableTableSeeder extends Seeder {

    public function run()
    {
        DB::table('ticket')->truncate();

        $tickets = [
            [
                            `reference`   => 'randomcode1',
                            `subject`   => 'test',
                            `name`      => 'testor',
                            `mail`      => 'testor@mail.nl',
                            `content`   => 'Lorem ipsum dolor sit amet'

            ]
        ];

        foreach($tickets as $ticket){
            Ticket::create($ticket);
        }

        foreach(range(1, 10) as $index)
        {
            SeedTicketsTable::create([

            ]);
        }
    }

}

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2012-12-31
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    相关资源
    最近更新 更多