[英]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.