繁体   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