很快,我正在输入php artisan db:seed
命令。
我得错误了:
[ReflectionException] 类UserTableSeeder不存在
root@dd-desktop:/opt/lampp/htdocs/dd/laravel# php artisan db:seed
在这里,是我的UserTableSeeder.php
和DatabaseSeeder.php
页面
UserTableSeeder.php
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class UserTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->delete();
User::create(array(
'name' => 'Chris Sevilleja',
'username' => 'sevilayha',
'email' => '[email protected]',
'password' => Hash::make('awesome'),
));
}
}
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();
Eloquent::unguard();
$this->call('UserTableSeeder');
//$this->call(UserTableSeeder::class);
//Model::reguard();
}
}
我正在引用这个Link来设计和开发登录页面。请帮我解决这个问题。谢谢。
执行composer update
,然后composer dump-autoload
。
如果上述方法无法解决问题,请更改classmap
文件中的composer.json
,使其包含php文件的项目相对路径:
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"database/seeds/UserTableSeeder.php" //include the file with its path here
]
}, /** ... */
不久之后,执行一个composer dump-autoload
,它现在应该像微风一样工作!
如果找不到composer dump-autoload
,只需启用此选项composer config -g -- disable-tls true
。
如果使用psr-0,请检查类名称是否包含下划线。
当它在寻找播种器类文件时,您可以运行composer dump-autoload。当你再次运行它并且它正在寻找模型时,你可以在播种机文件本身上引用它。像这样,
use App\{Model};
与问题没有严格关联,但收到错误ReflectionException: Class config does not exist
我添加了一个新的.env
变量,其中包含空格。运行php artisan config:clear
告诉我,任何带有空格的.env
变量应该被"
s包围。
这个和我的应用程序是否再次起作用,不需要在Laravel Homestead(5.4)中继续开发
我重新创建了课程,但它确实奏效了。复制所有文件内容,删除文件,然后运行php artisan make:seeder ModelTableSeeder
。因为composer dump-autoload
不适合我。
您可以尝试在app
大写中写use
,所以App
。为我工作。
composer dump-autoload
这将解决它
当您忘记关闭连接时,通常会在幼虫测试中出现错误消息ReflectionException: Class app does not exist
。
如果您在测试中使用setUp或tearDown函数,请不要忘记通过调用parent::setUp
和parent::tearDown
来关闭连接
public function setUp()
{
parent::setUp();
}
public function tearDown()
{
parent::tearDown();
}
composer dump-autoload
php artisan config:clear
php artisan cache:clear
这肯定会奏效。如果不是那么,你需要做
composer update
然后,上述命令。
检查你的大写!
默认情况下,您的主机系统(Windows或Mac)不区分大小写,Homestead继承此行为。另一方面,您的生产服务器区分大小写。
每当您收到ClassNotFound异常时,请检查以下内容:
composer update
以上命令对我有用。
每当你在la-ravel中进行新的迁移时,你需要在classmap
文件中刷新composer.json
。
根据我的经验,当您尝试调用的类有一些错误并且无法编译时,这将显示在大部分时间。请检查未反映的课程是否可以自行执行。
一个composer dump-autoload
应该修复它。
我有这个问题,我可以通过做php artisan config:cache
解决它。问题是我之前已经运行过该命令,后来又包含了一些新的播种器类。缓存的配置无法识别新类。所以运行该命令再次起作用。
如果您发现自己经常更改以包含新的播种器类,那么请考虑运行php artisan config:clear
。这将使您能够根据需要进行尽可能多的更改,然后在测试之后,您可以再次运行config:cache
以使事情再次以最佳状态运行。
出于某种原因,我不得不运行composer dumpautoload -o
。注意标志-o
,这意味着优化。我不知道为什么它只适用于它,但尝试一下。也许它有助于某人。
我和class
有同样的问题。我试过composer dump-autoload
和php artisan config:clear
,但它没有解决我的问题。
然后我决定阅读我的代码以找到问题,然后我发现了问题。我的问题是我班上缺少逗号。看我的模型代码:
{
protected
$fillable = ['agente_id', 'matter_id', 'amendment_id', 'tipo_id'];
public
$rules = [
'agente_id' => 'required', // <= See the comma
'tipo_id' => 'required'
];
public
$niceNames = [
'agente_id' => 'Membro', // <= This comma is missing on my code
'tipo_id' => 'Membro'
];
}
尝试使用以下命令
php artisan db:seed --class=DatabaseSeeder
您需要将其分配给名称空间才能找到它。
namespace App\Http\Controllers;
我不是在写这个问题的答案。但是如果他们遇到同样的错误我想帮助别人,但这里提到的答案不起作用。我也试过这里提到的所有解决方案。但我的问题在于我使用的命名空间。路径错了。
我使用的命名空间是:
namespace App\Http\Controllers;
但实际上控制器位于名为'FrontEnd'的文件夹中
所以解决方案是将名称空间更改为:
namespace App\Http\Controllers\Frontend;