Laravel - 未找到类/型号

问题描述 投票:0回答:4

最初,此代码有效,但它不再起作用。我不知道造成这个问题的原因。

错误是:

FatalErrorException in AdminController.php line 64:
Class 'App\Category' not found

AdminController代码是:

<?php

namespace App\Http\Controllers;

use Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Category;
use View;   

class AdminController extends Controller
{
    public function article_get()
    {
        $categories = Category::latest()->get();
        return View::make('create.article')->with('categories',$categories);
    }
}

我的模特类别位于App/Models/Category.php

我尝试过的:

  1. use App\Category;变为use Categoryuse \Category变为use App\Models\Category
  2. composer dump-autoload

几个小时前我有一个工作项目,但现在找不到我的模型了。

php laravel models
4个回答
2
投票

因为Laravel使用PSR-4 autoloading,所以您需要确保您的命名空间与真实的目录结构相匹配。

你说你的Category模型位于App/Models/Category.php所以它的命名空间应该是App\Models。然后,在你的控制器中你会use App\Models\Category


1
投票

你的代码似乎很好。可能是类别模型中的命名空间有问题。

如果您在AdminController控制器中将此代码用于Category Model:

use App\Models\Category;

那么你的Category模型本身就有这个命名空间

namespace App\Models;

检查您的模型命名空间是否仍然存在。

谢谢


0
投票

这样做,它必须工作:

use App\Models\Category

并确保模型类别位于名为Models的文件夹中。


0
投票

在控制器或播种机内部调用模型时,我也遇到了同样的错误。

最好的解决方案是在控制器中导入模型。

  • 在AdminController顶部添加以下行。 use App\Models\Category

这适用于您尝试调用模型的所有类。

© www.soinside.com 2019 - 2024. All rights reserved.