我是一名具有CI背景的Laravel 3.x初学者。Laravel路线 - 是否有可能根本不使用它们?
我非常熟悉使用控制器而不是路由,并且在尝试在Laravel中使用控制器时遇到了问题。
例如:假设我有home_controller和“about”动作。我的问题是,我只能通过设置指向它的路径来访问“关于”动作 - 我认为这是不受欢迎的。
有没有办法让“about”动作在没有设置路径的情况下工作?
我是一名具有CI背景的Laravel 3.x初学者。Laravel路线 - 是否有可能根本不使用它们?
我非常熟悉使用控制器而不是路由,并且在尝试在Laravel中使用控制器时遇到了问题。
例如:假设我有home_controller和“about”动作。我的问题是,我只能通过设置指向它的路径来访问“关于”动作 - 我认为这是不受欢迎的。
有没有办法让“about”动作在没有设置路径的情况下工作?
在laravel,一切都可以用两种路线和/或控制器来实现。
但是,使用两个路由AND控制器建议具有很大的灵活性。请参阅this article以获取更多信息以及如何将路线与控制器组合在一起的示例。
无论如何,如果你想使用控制器(这是完全可以接受的),你需要在routes.php
和Route::controller('yourcontroller')
之间注册它们,然后才能使用它们。
一切都必须路由在Laravel。但是,您不必手动路由每种方法。你可以按照Route::controller('admin')
的方法做一些事情。
您还可以使用'路线::控制器(Controller ::检测())',但**不推荐**,因为它可能是错误的,这取决于你的设置。 –
您必须注册所有控制器,如上例所示。它是每个控制器的一行代码,它是规则。 但是,如果您有静态页面或登录操作(页面),最好的做法是创建一个Route控制器(anonymus函数),而不是经典控制器(在controllers文件夹中)。
我喜欢迈克安东尼解决方案。当你只使用控制器时,这种检测方法就是你必须做的一切 - 这将自动注册你的所有控制器。迄今为止最好的免提解决方案。 通常控制器注册,作为球员已经提到的,这一点:
Route::controller('controllername');
'Controller :: detect()'不应该被提倡为解决方案。这不是,而且会导致很多问题。像您所展示的手动注册是一种更好的方法。 –
感谢您阅读该文章的链接。这非常有帮助。 – darksoulsong
不客气,很高兴帮助。 – Adrenaxus