【发布时间】:2017-02-09 05:38:24
【问题描述】:
当我尝试在控制器类方法中使用 User 类时,我收到了 Class 'App\Models\User' not found 错误。我到处寻找,尝试了一切都没有运气!这是我尝试过的:
- 检查该类是否存在并且在正确的路径中(它适用于其他任何地方)
- 将
use App\Models\User;添加到控制器文件的顶部并使用User - 试过了:
new \App\Models\User - 运行:
composer dump-autoload - 运行:
php artisan dump-autoload - 运行:
php artisan clear-compiled
当我执行dd(class_exists('App\Models\User')) 时,我得到\vendor\laravel\framework\src\Illuminate\Support\helpers.php:513:boolean false,这确认该类确实由于某种原因无法访问。
有什么想法吗?
编辑
您会发现与此类似但又不相同的问题。请仔细阅读问题。我没有说控制器类丢失了。我说无法从特定控制器类内部访问模型类(用户)。并且模型类在其他任何地方都可以使用。
编辑:代码摘录
<?php
use App\Models\User;
use App\Models\Role;
use App\Models\Advert;
use App\Models\AdvertPhoto;
use App\Models\AdvertMetum;
use App\Models\AdvertMetaDatum;
use App\Models\AdvertMetaCategory;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Request;
class AdvertsController extends BaseController {
/**
* Show the form for creating a new resource.
* GET /adverts/create
*
*/
public function create()
{
// New user instance
// dd(class_exists('\App\Models\User')); // Outputs FALSE
$userx = new User; // Throws an Exception
return View::make('adverts.create');
}
}
【问题讨论】:
-
不,它不是重复的。请仔细阅读问题。我没有说控制器类丢失了。我说无法从特定控制器类内部访问模型类(用户)。并且模型类适用于其他任何地方。
-
实际上你说的“在控制器类中”并不意味着“一个特定的控制器类”更不用说“模型类在其他任何地方都有效”。也就是说,您可能应该发布该特定控制器的代码(至少命名空间、用途和它不起作用的方法),因为它可能与该控制器上的某些代码有关。
-
我添加了一个精简版的控制器类。谢谢。
-
你不是缺少命名空间吗?那么其他的类呢,比如
Role和Advert,你能不能创建这些类的对象还是只是User类?