【问题标题】:Laravel 4: Package Extending ControllerLaravel 4:包扩展控制器
【发布时间】:2014-02-07 23:38:53
【问题描述】:

我正在尝试将我的扩展控制器打包到我的包中。所以,我把我所有的控制器都放在 'src' 文件夹下的 'controllers' 中。

MyController.php

namespace MyVendor\MyPackage;
use \Illuminate\Routing\Controller;

class MyController extends Controller
{
    public function loginAction()
    {
    }
}

我尝试使用 MyVendor\MyPackage\MyController@loginAction 从包中的路由调用它,结果显示消息“Class MyVendor\MyPackage\MyController 不存在”。

我错过了什么或做错了什么?如何让它发挥作用?

谢谢。

【问题讨论】:

  • 您是否将其添加到 composer.json 中的自动加载并运行 composer dump-autoload

标签: php laravel-4


【解决方案1】:

第 1 步:确保它是通过 composer 自动加载的。在 composer.json 中(在您的工作台/包中):

"autoload": {

    // ...

    "classmap": [
        "src/controllers",
    ],

    // ...
},

然后从命令行运行composer dump-autoload,但要确保你在包目录中(例如workbench/name/package/)!

第 2 步:在 /app/config/app.php 中添加别名。

【讨论】:

  • 非常感谢您的回答。我试过了,但仍然遇到同样的错误。我不明白的部分是第2步。在别名中添加什么?我在这里所做的是添加"MyVendor\MyPackage"=>"MyVendor\MyPackage\Controllers"。对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 2013-02-03
相关资源
最近更新 更多