Jas*_*enX 23 php laravel laravel-5 artisan
我有这个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()
{
Model::unguard();
$this->call('MemberInvitationSeeder');
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个文件MemberInvitationSeeder.php,兄弟姐妹到DatabaseSeeder.php文件
<?php
use Illuminate\Database\Seeder;
use App\MemberInvitation;
class MemberInvitationSeeder extends Seeder {
public function run()
{
MemberInvitation::truncate();
MemberInvitation::create( [
'id' => 'BlahBlah' ,//com_create_guid(),
'partner_id' => 1,
'fisrt_name' => 'Thats',
'last_name' => 'Me',
'email' => 'me@mymail.com',
'mobile_phone' => '444-342-4234',
'created_at' => new DateTime
] );
}
}
Run Code Online (Sandbox Code Playgroud)
现在我打电话
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
我得到:
[ReflectionException]
Class MemberInvitationSeeder does not exist
Run Code Online (Sandbox Code Playgroud)
我尝试了所有我能找到的东西,包括"composer dump-autoload".无济于事.我究竟做错了什么?
Krz*_*ski 75
第一步 - 生成种子:
php artisan make:seed MemberInvitationSeeder
Run Code Online (Sandbox Code Playgroud)
第二步 - 在DatabaseSeeder.php中添加行:
$this->call(MemberInvitationSeeder::class);
Run Code Online (Sandbox Code Playgroud)
第三步:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
第四步:
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
这应该工作
如果这不是线索,请检查文件composer.json并确保在"autoload"部分中包含此代码:
"classmap": [
"database"
],
Run Code Online (Sandbox Code Playgroud)
我通过使用以下指令将类添加到种子文件中来解决了这个问题use:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use App\YourClassName;
Run Code Online (Sandbox Code Playgroud)
我相信我现在知道原因了。
新类 MemberInvitationSeeder 不在composer.json 文件中自动加载的类中。
它不在那里,因为我手动添加了该类。
现在,如果我再次添加此类类,我应该使用什么才能让我的类自动加载到自动加载器中?