微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在URL中使用laravel路由来获取未知数量的参数?

例如,我正在出版带有章节,主题文章的书籍:

http://domain.com/book/chapter/topic/article

我会使用参数的Laravel路线:

Route :: get(‘/ {book} / {chapter} / {topic} / {article}’,’controller @ func’)

在Laravel中,是否有可能只有一个规则可以满足图书结构中未知数量的级别(类似于this question)?这意味着哪里有子文章,子分文章等.

解决方法:

您需要的是可选的路由参数:

//in routes.PHP
Route::get('/{book?}/{chapter?}/{topic?}/{article?}', 'controller@func');

//in your controller
public function func($book = null, $chapter = null, $topic = null, $article = null) {
  ...
}

有关详细信息,请参阅文档:http://laravel.com/docs/5.0/routing#route-parameters

更新:

如果您希望在文章后拥有无限数量的参数,则可以执行以下操作:

//in routes.PHP
Route::get('/{book?}/{chapter?}/{topic?}/{article?}/{sublevels?}', 'controller@func')->where('sublevels', '.*');

//in your controller
public function func($book = null, $chapter = null, $topic = null, $article = null, $sublevels = null) {
  //this will give you the array of sublevels
  if (!empty($sublevels) $sublevels = explode('/', $sublevels);
  ...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐