laravel 5 autoload没有加载型号

Sex*_*yMF 2 autoload composer-php laravel-5

我有这个作曲家配置:
在classmap "app/models"
下:在psr -4下: "App\\Models\\": "app/models"

"autoload": {
        "classmap": [
            "database",
            "app/models"
        ],
        "psr-4": {
            "App\\": "app/",
            "App\\Models\\": "app/models"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
Run Code Online (Sandbox Code Playgroud)

这是我的模型:

namespace App\Models;
class TemplateRow extends Model{
    protected $table = "template_rows";
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我做了:$row = new TemplateRow();我得到了课程没有发现异常.
我做了dump-autoload.

谢谢

luk*_*ter 5

您必须使用它的命名空间实际引用模型.你可以写:

$row = new \App\Models\TemplateRow();
Run Code Online (Sandbox Code Playgroud)

或者在课前添加:

use App\Models\TemplateRow;
Run Code Online (Sandbox Code Playgroud)

另请注意,您甚至不必添加条目psr-4.如果您的目录结构遵循命名空间.要确定,请调用您的文件夹Models而不是models

  • 不.自动加载用于使类实际可用.*加载*所有PHP文件.如果您不想编写全名(或添加import语句),则需要别名.(您可以在`config/app.php`中添加) (2认同)