[英]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.