Laravel 4:未找到模型类

时间:2016-09-30 15:24:02

标签: php laravel-4

当我尝试在控制器类方法中使用Class 'App\Models\User' not found类时,我收到User错误。我到处寻找并试着一切都没有运气!以下是我尝试过的内容:

  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
  7. 当我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');
    
        }
    
    
    
    
    }
    

1 个答案:

答案 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;!)