I have this 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');
}
}
I have this file MemberInvitationSeeder.php, sibling to the DatabaseSeeder.php file
<?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
] );
}
}
Now I call
php artisan db:seed
and I get:
[ReflectionException]
Class MemberInvitationSeeder does not exist
I tried everything I could find including "composer dump-autoload". to no avail. What am I doing wrong?
9条答案
按热度按时间q8l4jmvw1#
中 的 每 一 个
格式
第 三 步
格式
格式
这 应该 可以
如果 这 不是 线索 , 请 检查 composer.json 文件 , 并 确保 在 " autoload " 部分 中 有 以下 代码 :
格式
nzk0hqpo2#
我通过将类添加到seeder文件中来解决这个问题,指令为
use
:pepwfjgg3#
I believe I know the reason now.
The new class MemberInvitationSeeder wasn't in the autoloaded classes in the composer.json file.
It wasn't there because I added that class manually.
Now, going forward, if I add such classes again, what should I use in order for my class to automatically to the autoloader?
zzwlnbp84#
这对我的工作
composer dump-autoload
php artisan db:seed
mw3dktmi5#
我遇到了类似的错误,但我使用的是DB Facade
DB::table
而不是Model。我发布答案,以防有人有类似的问题。seeder文件的名称空间为
namespace Database\Seeders;
,laravel尝试在名称空间内查找DB类,因此出现错误。Class 'Database\Seeders\DB' not found
.决议:
composer dump-autoload
或将反斜杠添加到
\DB::table('stock_categories')->([ ... ]);
,以便Laravel从根目录( 而不是指定的名称空间 *)开始查找DB外观例如:
vuv7lop36#
如果上面的解决方案不起作用,试试这个。你可能已经改变了命名空间(默认情况下,它是“App”)。你需要做的是转到
composer.json
文件并检查以下内容:如果命名空间是App(如本例所示),则此解决方案不适合您。
否则,使用您找到的名称空间并将该行插入到seeder类中:
dfuffjeb7#
如果要将字符串用作参数,则应包括namespace
ulmd4ohb8#
在制作
php artisan make:seed SeederName
之后,你需要在php artisan db:seed
之后运行composer dump-autoload
命令。woobm2wo9#
我正面临着这个问题与laravel包与spatie解决这个问题只是
1-在包的composer.json中追加种子路径
1.然后转到主项目并使用
composer update
更新composer1.使用
composer dump-autoload
自动加载类