简体   繁体   English

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

[英]composer autoload psr-4 not working

I'm using psr-4 to autoload and create a namespace. 我正在使用psr-4自动加载并创建名称空间。 But I'm getting this error: 但我收到此错误:

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

My architecture 我的建筑

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

在此处输入图片说明

This is my composer.json 这是我的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"
    }
}

My User.php 我的User.php

<?php

namespace VDB\Models;

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent {

}

My Route 我的路线

<?php

use \Models\User;

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

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

    var_dump($user);

})->name('users');

I already tried composer dump-autoload but it didn't work. 我已经尝试过作曲家dump-autoload,但没有用。 Anybody else who can think about something? 还有其他人可以考虑的事情吗?

You need to fix your import: 您需要修复导入:

use VDB\Models\User;

If the class still can't be found, try running 如果仍然找不到该类,请尝试运行

$ composer dump-autoload 

For reference, see https://getcomposer.org/doc/03-cli.md#dump-autoload . 作为参考,请参阅https://getcomposer.org/doc/03-cli.md#dump-autoload

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM