路由命名
Last updated
Was this helpful?
Last updated
Was this helpful?
在应用程序其他地方引用路由的最简单办法是通过路径,有一个url()全局帮助函数来简化视图中的链接,参见示例3-8,help()将为你的路由加上站点的完整域前缀
Laravel还允许命名路由,这使你可以在不显示引用URL的情况下引用路由,这是很有帮助的,这意味着你可以给复杂的路由提供简单的昵称,也意味着如果路径发生变化,你不用去重写前端的链接地址(参加示例3-9)
这个例子阐述了一些新概念,我们在get()方法后通过name()并为其提供一个简短的别名,以便于在其他地方引用。
Laravel 5.1版本没有这个功能,使用如下方式定义,具体请查看
在我们的示例中,我们将此路由命名为members.show;使用资源.动作的方式是Laravel中路由和视图名称的常见约定
这个例子还介绍了route()辅助函数,就像url()辅助函数一样,它用于简化视图到命名路由之间的链接,如果路由没有参数,只需要传递名称(route('members.show'))就会收到一个路由字符串(http://myapp.com/members),如果有参数把参数作为数组传递给route()第二个参数,具体参见例子3-9
通常,我建议使用路由名而不是路径来引用您的路由,因此使用route()而不是url()。 有时它会变得有点笨拙 - 例如,如果你正在使用多个子域 - 但它提供了令人难以置信的灵活性,以便以后更改应用程序的路由结构
通过route()辅助函数访问路由参数
当你的路由带有参数(例如:users/id),当您使用route()辅助函数生成到路由的链接时,需要定义这些参数
传递这些参数有几种不同的方法。让我们设想一个定义为users/userid/comments/commentid的路由。如果用户ID为1,而注释ID为2,那么让我们看看我们可以使用的一些选项:
可以看出非键值对的数组是按照顺序传递的,键值对的可以不用考虑顺序,多余的参数按照查询参数添加