最初,此代码有效,但它不再起作用。我不知道造成这个问题的原因。
错误是:
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
。
我尝试过的:
use App\Category;
变为use Category
,use \Category
变为use App\Models\Category
。composer dump-autoload
。几个小时前我有一个工作项目,但现在找不到我的模型了。
因为Laravel使用PSR-4 autoloading,所以您需要确保您的命名空间与真实的目录结构相匹配。
你说你的Category
模型位于App/Models/Category.php
所以它的命名空间应该是App\Models
。然后,在你的控制器中你会use App\Models\Category
。
你的代码似乎很好。可能是类别模型中的命名空间有问题。
如果您在AdminController控制器中将此代码用于Category Model:
use App\Models\Category;
那么你的Category模型本身就有这个命名空间
namespace App\Models;
检查您的模型命名空间是否仍然存在。
谢谢
这样做,它必须工作:
use App\Models\Category
并确保模型类别位于名为Models的文件夹中。
在控制器或播种机内部调用模型时,我也遇到了同样的错误。
最好的解决方案是在控制器中导入模型。
use App\Models\Category
这适用于您尝试调用模型的所有类。