【问题标题】:Laravel Routes - is it possible to not use them at all?Laravel Routes - 是否可以完全不使用它们?
【发布时间】:2013-03-24 08:02:50
【问题描述】:

我是具有 CI 背景的 Laravel 3.x 初学者。

我非常熟悉使用控制器而不是路由,我在尝试在 Laravel 中使用控制器时遇到了问题。

例如:假设我有 home_controller 和“关于”操作。我的问题是我只能通过设置指向它的路由来访问“关于”操作 - 我认为这是不可取的。

有没有办法让“关于”操作在不设置路线的情况下工作?

【问题讨论】:

    标签: laravel laravel-routing


    【解决方案1】:

    一切都必须在 Laravel 中路由。但是,您不必手动路由每种方法。您可以按照Route::controller('admin') 的方式做一些事情。

    请看这里:http://laravel.com/docs/routing#controller-routing

    【讨论】:

    • 您也可以使用Route::controller(Controller::detect()),但不推荐,因为它可能有问题,具体取决于您的设置。
    【解决方案2】:

    在 laravel 中,一切都可以使用路由和/或控制器来完成。

    但是,建议同时使用路由和控制器以提高灵活性。有关如何将路由与控制器组合的更多信息和一些示例,请参阅this article

    无论如何,如果您想使用控制器(这是完全可以接受的),您需要在您的routes.phpRoute::controller('yourcontroller') 中注册它们,然后才能使用它们。

    【讨论】:

    • 感谢该文章的链接。这很有帮助。
    【解决方案3】:

    您必须像上面的示例一样注册所有控制器。它是每个控制器的一行代码,它是规则。 但如果你有一个静态页面或登录动作(页面),一个好的做法是创建一个 Route 控制器(匿名函数),而不是经典控制器(在 controllers 文件夹中)。

    【讨论】:

      【解决方案4】:

      我喜欢 Mike Anthony 的解决方案。当您仅使用控制器时,此检测方法就是您必须做的一切 - 这将自动注册您的所有控制器。迄今为止最好的免提解决方案。 正如前面提到的,通常的控制器注册是这样的:

      Route::controller('controllername');   
      

      【讨论】:

      • Controller::detect() 不应被提倡为解决方案。它不是并且会导致很多问题。像您展示的那样手动注册是一种更好的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多