php 继承 exception类,php-ReflectionException:类ClassName不存在-L

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值