繁体   English   中英

Laravel:“php artisan db:seed”不起作用

[英]Laravel :“php artisan db:seed” doesn't work

我试图在数据库中运行“ServiceTableSeeder”表我收到错误消息。

我尝试运行“ php artisan db:seed

消息:

[symfony\component|Debug\Exception\FetalErrorException]
cannot redeclare DatabaseSeeder::run()

DatabaseSeeder .php

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
     public function run()
     {
         Eloquent::unguard();
         $this->call('ServiceTableSeeder');

     }

}

ServiceTableSeeder.php

<?php

class ServiceTableSeeder extends Seeder {

  public function run()
  {
    Service::create(
      array(
        'title' => 'Web development',
        'description' => 'PHP, MySQL, Javascript and more.'
      )
    );

    Service::create(
      array(
        'title' => 'SEO',
        'description' => 'Get on first page of search engines with our help.'
      )
    );

  }
}

如何解决这个问题。我是laravel的新人,请指导我。

对于那些面临同样问题的人,请从.env文件确认您的APP_ENV变量因为如果我们设置Laravel不让我们运行db:seed

'APP_ENV =生产'

为了数据库记录。

因此,请确保将APP_ENV的值设置为“staging”或“local”,然后运行php artisan db:seed

我认为问题是你的ServiceTableSeeder.php文件。 您应该确保此文件中的类文件名是ServiceTableSeeder而不是DatabaseSeeder

考虑到Service是您创建的模型,并且此模型位于App命名空间内的App文件夹内,请尝试以下操作:

修复您的ServiceTableSeeder.php标头:

<?php
use Illuminate\Database\Seeder;
use App\Service;

class ServiceTableSeeder extends Seeder {

  public function run()
  {
    Service::create(
      array(
        'title' => 'Web development',
        'description' => 'PHP, MySQL, Javascript and more.'
      )
    );

    Service::create(
      array(
        'title' => 'SEO',
        'description' => 'Get on first page of search engines with our help.'
      )
    );

  }
}

当您将模型移动到app \\ models时,必须在每个模型文件中声明:

Models.php:

 namespace App\Models;

在种子文件中,使用:

 use App\Models\Service.php;

您使用composer自动加载您的文件吗? 如果是这样,请更新您的composer.json文件以包含您的模型位置:

"autoload": {
    "classmap": [
        "database",
        "app/Models"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

最后,在命令行中运行它:

composer dump-autoload

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM