我试图在数据库中运行“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的新手,请指导我。
最佳答案
考虑到 Service 是您创建的模型,并且该模型位于 app 文件夹中的 App 命名空间内,请尝试以下操作:
修复您的 ServiceTableSeeder.php header :
<?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 时,您必须在每个模型文件中声明:
模型.php:
namespace App\Models;
在你的种子文件中,使用:
use App\Models\Service.php;
您是否使用 Composer 自动加载文件?如果是这样,请更新您的 composer.json 文件以包含您的模型位置:
"autoload": {
"classmap": [
"database",
"app/Models"
],
"psr-4": {
"App\\": "app/"
}
},
最后,在命令行中运行它:
composer dump-autoload
关于php - Laravel :"php artisan db:seed"不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29727510/