[英]Laravel 4: Model Class not found
当我也尝试在控制器类方法内使用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');
}
}
我已经设法自己解决了。 事实证明,您必须告诉Laravel哪个类和表将用于身份验证(也称为“用户”类)。 我不知道这一点(加上这是一个继承的项目)。 显然, User
类是在根名称空间(即\\User
)中定义的,并且Laravel配置为查找\\User
。 但是有时我在代码中看到\\App\\Models\\User
,它给我的印象是User
与其他模型位于同一命名空间下,因为它们都位于app/models/
文件夹中。 我已通过更改更改了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;
!)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.