【问题标题】:Class 'app\Models\User' not found Laravel 5.4Laravel 5.4 找不到类“app\Models\User”
【发布时间】:2017-10-04 07:46:15
【问题描述】:

出现“找不到类'app\Models\User'”消息,但我在几个地方进行了研究,但没有一个解决方案有效。

composer.json:

"autoload": {
    "classmap": [
        "database","Models"
    ],

    "psr-4": {
        "App\\": "app/"
    }
},

用户.php:

namespace App\Models;

class User extends Eloquent{
    public function allUsers(){
        return self::all();     
    }   
}

用户控制器.php:

namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller{    
    protected $user = null;

    public function __construct(User $user){

        $this->user = $user;

    }
    public function allUsers(){
        return $this->user->allUsers();
    }
    public function getUser($id){

    }
    public function saveUser(){

    }
    public function updateUser($id){

    }
    public function deleteUser($id){

    }
}

UserController 替代方案(也不起作用)

namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller{
    public function __construct(){          
    }
    public function allUsers(){

        $class = '\app\Models\User';
        return $class::allUsers();

    }
    public function getUser($id){

    }
    public function saveUser(){

    }
    public function updateUser($id){

    }
    public function deleteUser($id){

    }
}

有人可以帮我吗?

【问题讨论】:

    标签: php namespaces composer-php laravel-5.4 psr-4


    【解决方案1】:

    转到 config/auth.php 并将 App\User:class 更改为 App\Models\User::class。

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
    

    同时更改 User.php 模型的命名空间

    namespace App\Models;
    

    【讨论】:

      【解决方案2】:

      你应该关心大小写。

      $class = '\app\Models\User';
      

      不会工作,但是

      $class = '\App\Models\User';
      

      可能会。

      【讨论】:

        【解决方案3】:

        我曾经遇到过类似的问题。这是我解决它的方法 这是一个资源文件,我在其中调用了一个类实例,

        $this->user->name
        

        在模型文件中,我将其称为

        User::class
        

        即使命名空间明显是 App\Models

        这不起作用,因为用户模型位于 App 根目录中。所以我将实例更改为

        \App\User::class
        

        之后就成功了

        【讨论】:

          猜你喜欢
          • 2021-12-28
          • 2017-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-14
          • 1970-01-01
          • 2019-09-25
          • 2021-03-07
          相关资源
          最近更新 更多