当我尝试在控制器类方法中使用Class 'App\Models\User' not found
类时,我收到User
错误。我到处寻找并试着一切都没有运气!以下是我尝试过的内容:
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
确认该课程因某些原因无法访问。
有什么想法吗?
修改
你会发现类似的问题,但不一样。请仔细阅读问题。我没有说控制器类丢失了。我说模型类(User)无法从特定的控制器类中访问。并且模型类可以在其他任何地方使用。
编辑:代码摘录
<?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');
}
}
答案 0 :(得分:0)
我已经成功解决了这个问题。事实证明,您必须告诉Laravel将使用哪个类和表进行身份验证(a.k.a您的&#39; User&#39;类)。我不知道这个(加上这是一个继承的项目)。显然,User
类是在根命名空间中定义的(即\User
),Laravel配置为查找\User
。但有时我会在代码中看到\App\Models\User
,这给我的印象是User
与其他模型在同一名称空间下,因为它们在app/models/
文件夹中都是ALL。我已在config/auth.php
中通过更改:
'model' => 'User'
为:
'model' => App\Models\User::class
在app/models/user.php
顶部添加名称空间:
namespace App\Models;
最后我在config/app.php
中设置了一个别名:
'User' => 'App\Models\User'
所以,我一直在使用User::blah
的地方不会破坏(迫使我到处添加use App\Models\User;
!)