簡體   English   中英

Laravel 4:找不到模型類

[英]Laravel 4: Model Class not found

當我也嘗試在控制器類方法內使用User類時,出現Class 'App\\Models\\User' not found錯誤。 我四處張望,沒有運氣就嘗試了一切! 這是我嘗試過的:

  1. 檢查類是否存在並且在正確的路徑中(它在其他任何地方都有效)
  2. 添加use App\\Models\\User; 到控制器文件的頂部,僅使用User
  3. 嘗試過: new \\App\\Models\\User
  4. 運行: composer dump-autoload
  5. 運行: php artisan dump-autoload
  6. 運行: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM