composer-php - laravel 5 自动加载不加载模型

标签 composer-php autoload laravel-5

我有这个 Composer 配置:
在类映射下:“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"
        ]
    },

这是我的模型:

namespace App\Models;
class TemplateRow extends Model{
    protected $table = "template_rows";
}

在我的 Controller 中我做了:$row = new TemplateRow();并且我得到了类未找到异常。
我做了转储自动加载。

谢谢

最佳答案

您必须实际引用模型及其命名空间。您可以写:

$row = new \App\Models\TemplateRow();

或者在类之前添加:

use App\Models\TemplateRow;

另请注意,您甚至不必在 psr-4 下添加条目。如果您的目录结构遵循命名空间。为了确定起见,请将您的文件夹命名为 Models 而不是 models

关于composer-php - laravel 5 自动加载不加载模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657276/

相关文章:

php - 如何修复 composer post-install-cmd 脚本的错误?

ruby-on-rails - 我如何告诉 Rails 从顶级目录自动加载命名空间模型?

php - 位于 ./foo/bar/utility/baz.php 的 Foo\Bar\Baz 类不符合 psr-4 自动加载标准。跳绳

php - 在每个页面上使用 spl_autoload 而不使用关键字?

laravel - 如何使用 Blade 模板中的类?

php - 在没有 Packagist 的情况下使用 Composer

php - Laravel Framework - 通过 Laravel 或 Composer 创建新项目的区别?

composer-php - 如何从 Composer 事件中获取包名称?

php - 如何在 mycontroller 中获取 laravel 5.2 ADLDAP 提供程序实例?

php - 更新现有的列属性 - Laravel 5 迁移