Laravel: class App\Posts 不存在

Laravel: class App\Posts does not exists

我在 Laravel 中多次遇到此错误,因为使用的模型 classes 表示此 class 不存在,而它确实存在。其中之一是当我 运行 App\Post::count()tinker 得到这个:

PHP Fatal error: Class 'App/Post' not found in Psy Shell code on line 1

其中一次是当我尝试用模型为数据库播种时。这是模型内容:

namespace App;    
use Illuminate\Database\Eloquent\Model;   
class Dog extends Model
{   
    //   
} 

这是播种机:

<?php
use Illuminate\Database\Seeder;
 use \App\Dog;   
class DogsTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
    public function run()
    {
        Dog::query()->create(['name'=>'jack']);
    }
}

出现此错误:Class 'App\Dog' 未找到。这适用于我创建的每个模型。
任何解决方案? (Laravel -V: 5.4, PHP -V: 7.2, Apache 网络服务器)

在某些服务器上,您需要在 App 前加上 \,例如: 命名空间 \App;

同样在上述变化之后:

  • 还要仔细检查 class 模型中的名称
  • 运行作曲家dump-autoload
  • php artisan cache:clear

在 laravel 5.8 上尝试使用 php v7.2 修复相同问题约半小时后,我注意到我的 php 文件以 <? 输出开始定界符。将 <? 更改为 <?php 解决了我的问题。

有时需要清除缓存,这个命令对我有效:

composer dump-autoload

希望对你也有用

问候

使用此路径。

>>> App\Models\Post

使用此路径,希望您得到答案

App\Models\Post

不要使用此路径

App\Post

使用此路径

App\Models\Post

我在使用 App\Post::count() 时遇到了类似的问题,但是当我在 Post 之前添加模型时它起作用了。你也可以试试那个。

App\Models\Post::count()

因此,在您的情况下:

App\Models\Dog