php-ReflectionException:类ClassName不存在-L
我马上输入UserTableSeeder.php命令。
我收到错误提示:
[ReflectionException]
类UserTableSeeder不存在
UserTableSeeder.php
这是我的UserTableSeeder.php和DatabaseSeeder.php页面
UserTableSeeder.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' => 'chris@scotch.io',
'password' => Hash::make('awesome'),
));
}
}
DatabaseSeeder.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();
}
}
我是将此链接引至“设计与开发”登录页面。请帮助我解决此问题。 谢谢。
19个解决方案
111 votes
执行composer dump-autoload,然后执行composer config -g -- disable-tls true。
如果以上方法仍不能解决问题,请更改composer dump-autoload840中的composer dump-autoload,使其包含相对于PHP文件的项目相对路径:
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"database/seeds/UserTableSeeder.php" //include the file with its path here
]
}, /** ... */
然后不久,执行composer dump-autoload,它现在应该像微风一样工作!
由@JMSamudio编辑
如果找不到composer dump-autoload,则只需启用此选项composer config -g -- disable-tls true。
Ahmad Baktash Hayeri answered 2020-08-02T17:00:26Z
14 votes
根据我的经验,大多数情况下,当您尝试调用的类存在一些错误且无法编译时,就会出现这种情况。 请检查未反映的类是否可以单独执行。
Kamaro Lambert answered 2020-08-02T17:00:47Z
11 votes
composer dump-autoload应该修复它。
fsavina answered 2020-08-02T17:01:07Z
4 votes
我遇到了这个问题,可以通过执行php artisan config:clear来解决。问题是我以前已经运行过该命令,后来又包含了一些新的播种器类。 缓存的配置无法识别新类。 因此,再次运行该命令即可。
如果您发现自己经常进行更改以包括新的播种器类,请考虑运行php artisan config:clear。这将使您能够进行所需的任意更改,然后在测试后可以再次运行config:cache以使事情再次最佳运行。
Sriram Ranganathan answered 2020-08-02T17:01:32Z
3 votes
由于某些原因,我必须运行2993894327927958635520。注意标记-o,这表示优化。 我不知道为什么它只能与它一起使用,但可以尝试一下。 也许它可以帮助某人。
Jaroslav Klimčík answered 2020-08-02T17:01:53Z
3 votes
我在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'
];
}
Luciano Braga answered 2020-08-02T17:02:17Z
1 votes
尝试使用以下命令
php artisan db:seed --class=DatabaseSeeder
easycodingclub answered 2020-08-02T17:02:38Z
1 votes
您需要将其分配给名称空间才能找到它。
namespace App\Http\Controllers;
G-Man answered 2020-08-02T17:02:58Z
1 votes
我不是在写这个问题的答案。 但是,如果其他人遇到相同的错误,但我想帮助他们,但此处提到的答案无效。 我也尝试了这里提到的所有解决方案。 但是我的问题是使用的命名空间。 路径错误。
我使用的命名空间是:
namespace App\Http\Controllers;
但实际上,控制器位于名为“ FrontEnd”的文件夹中
因此解决方案是将名称空间更改为:
namespace App\Http\Controllers\Frontend;
Abhi answered 2020-08-02T17:03:32Z
1 votes
composer dump-autoload
php artisan config:clear
php artisan cache:clear
这肯定会起作用。如果不是这样,您需要做
composer update
然后是上述命令。
user3309447 answered 2020-08-02T17:03:56Z
1 votes
检查您的大小写!
您的主机系统(Windows或Mac)默认情况下不区分大小写,并且Homestead继承了此行为。 另一方面,您的生产服务器区分大小写。
每当您收到ClassNotFound异常时,请检查以下内容:
拼写
命名空间
大写
Fazil Raza answered 2020-08-02T17:04:38Z
0 votes
当寻找种子类文件时,可以运行composer dump-autoload。 再次运行它并寻找模型时,可以在种子文件本身上引用它。 像这样
use App\{Model};
Kent Aguilar answered 2020-08-02T17:04:58Z
0 votes
与问题不完全相关,但收到错误.env
我添加了一个新的.env变量,其中带有空格。 运行php artisan config:clear告诉我,任何带有空格的.env变量都应被"s包围。
此操作和我的应用程序是否再次正常运行,不需要清除配置,因为Laravel Homestead(5.4)仍在开发中
Scott Brown answered 2020-08-02T17:05:27Z
0 votes
我重新创建了班级,并且有效。 复制所有文件内容,删除文件,然后运行php artisan make:seeder ModelTableSeeder。因为composer dump-autoload不适用于我。
М.Б. answered 2020-08-02T17:05:47Z
0 votes
您可以尝试将29938986068198019804161大写成app,所以App。为我工作。
Epsilon47 answered 2020-08-02T17:06:07Z
0 votes
composer dump-autoload
这将解决它
Richard kortby answered 2020-08-02T17:06:27Z
0 votes
当您忘记关闭连接时,通常在幼虫测试中会出现错误消息parent::setUp。
如果您在测试中使用setUp或tearDown函数,请不要忘记通过致电parent::setUp和parent::tearDown关闭连接
public function setUp()
{
parent::setUp();
}
public function tearDown()
{
parent::tearDown();
}
Suresh Dhakal answered 2020-08-02T17:06:51Z
0 votes
如果使用psr-0,请检查类名是否不包含下划线。
Mohammed Yassine CHABLI answered 2020-08-02T17:07:11Z
0 votes
composer update
上面的命令对我有用。
每当您在la-ravel中进行新迁移时,都需要刷新composer.json文件中的classmap。
KNK answered 2020-08-02T17:07:35Z