【问题标题】:Adding Model directories to the ClassLoader将模型目录添加到 ClassLoader
【发布时间】:2014-06-25 23:24:45
【问题描述】:

我正在使用October,这是一个建立在Laravel framework之上的CMS。

在 10 月,几乎所有东西都是基于插件的,而且模型似乎只在 plugin/model 目录中定义。不幸的是,我需要定义和使用多个站点范围的Models。为此,我创建了经典的Laravelapp/models 目录并将它们放在其中。

但是,框架不会检测这些模型并自动加载它们。在某种程度上,我已经成功地将它们包含在我的标准php 文件中。但是,当我尝试定义模型之间的关系时,我遇到了问题。我认为(这可能是错误的)我需要使用 Laravel/October 的任何自动加载系统。

我找到了Illuminate\Support\ClassLoader 并尝试使用addDirectories() 方法,传入['app/models'],希望我的模型能够经历“标准”自动加载过程。不幸的是,虽然它没有破坏任何东西,但它也没有修复任何东西。

问题:

如何为 Laravel 应用程序在启动时指定一个自定义目录?我需要他们额外的步骤来注册我在上述目录中的Models吗?

【问题讨论】:

    标签: laravel octobercms


    【解决方案1】:

    您可以将其添加到您的composer.json 文件中的classmap

    "autoload": {
        "classmap": [
            "app/models"
        ]
    }
    

    在常规 Laravel 安装中的设置方式。

    【讨论】:

    • 有没有办法在 PHP 中做到这一点?添加到 composer.json 需要重新构建我认为的自动加载地图。我看到其他人在旧版本的 laravel 中使用 ClassLoader 类(作曲家的一部分)(github.com/msurguy/laravel-seo/blob/master/app/start/global.php),但 Laravel 在当前版本中似乎没有向我们公开这个类。该类用于composer生成的php文件中......如果Laravel不打算让你这样做,我不会尝试破解我自己的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多