作曲家自动加载psr-4无法正常工作

时间:2015-12-25 14:07:57

标签: php composer-php autoload psr-4

我正在使用psr-4自动加载并创建命名空间。但是我收到了这个错误:

Fatal error: Class 'Models\User' not found in /app/routes/users.php on line 7

我的架构

app
---routes
------users.php
---VDB
------Models
---------User.php

enter image description here

这是我的composer.json

{
    "autoload": {
        "psr-4": {
            "VDB\\": "app/VDB"
        }
    },
    "require": {
        "slim/slim": "~2.0",
        "slim/views": "^0.1.3",
        "twig/twig": "^1.23",
        "illuminate/database": "~5.0"
    }
}

我的User.php

<?php

namespace VDB\Models;

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent {

}

我的路线

<?php

use \Models\User;

$app->get('/users/:username', function($username) use ($app) {

    $user = User::where('username', $username)->first();

    var_dump($user);

})->name('users');

我已经尝试过composer dump-autoload,但它没有用。 还有谁能想到什么?

1 个答案:

答案 0 :(得分:0)

您需要修复导入:

use VDB\Models\User;

如果仍无法找到课程,请尝试运行

$ composer dump-autoload 

供参考,请参阅https://getcomposer.org/doc/03-cli.md#dump-autoload