【发布时间】:2014-09-08 20:34:19
【问题描述】:
我正在将我网站的论坛部分迁移到 Laravel 4。我自己管理分页。 (不是 Laravel 内置的)
我的网址目前使用以下格式:
example.com/forum
example.com/forum/page-1
我想在迁移后保持这种状态。
我的路线是这样的:
Route::get('/forum/page-{page?}',
array('uses' => 'ForumController@showForum', 'as' => 'forum'));
但是当我请求没有页码的页面时它当然不起作用。
我可以像/forum/{pagetext?}-{page?} 那样做,但我不想在我的控制器中捕获 pagetext 参数,我只想在使用 URL::route() 为页面构建 url 时提供 $page 参数.
我在 Internet 上找到了很多示例,但它总是带有多个参数,没有静态可选文本。
我怎样才能使这个“静态”部分也成为可选的?
我正在考虑像正则表达式中的可选组,比如/forum/(page-{page})?,但我如何在 Laravel 中做到这一点?
【问题讨论】:
-
那你为什么希望它是可选的呢?您可以将
forumurl 作为 1 个路由,将forum/page-{page}作为另一个路由,如果需要,两者都使用相同的控制器(方法)。 -
@JarekTkaczyk 我一开始就想到了这一点,但忘记了。谢谢你提到它。它给人的印象是有两条路线,但那是一条完全相同的路线,所以对我来说这看起来不太好。但它看起来是一个非常好的方法来拥有干净的参数