我正在与Laravel建立论坛。我决定有这样的路线:
Route::get('/{topicName}', 'ForumController@showTopic');
Route::get('/{postSubject}', 'ForumController@showPost');
我也有另一条路线,但是这两条在底部,因为当我在URL中写某事(而laravel找不到通过地址)时,所有内容都落入了这条路线(尤其是第一条路线)。我不知道该如何编程才能使用最后两条路线。当有人添加我的主题名称时,他将进入网站:
http:/forum/php
或
http:/forum/javaScript
然后用户可以看到此主题的所有帖子。但是,当用户希望看到一个特定的帖子时,我想进入以下网址:
http:/forum/post_subject_name
现在用户可以看到特定的帖子。如何执行此操作,因为现在所有内容都归我的第一个控制器-ForumController @ showTopic')。这可能吗?
您不能,这两个路由都具有相同的要求,如果它们都位于路由的底部,则topicName将始终具有优先级。
您应该有诸如这样的路线>
Route::get('/topics/{topicName}', 'ForumController@showTopic'); Route::get('/posts/{postSubject}', 'ForumController@showPost');
这样您就可以区分它们
问题是两条路由都包含一个参数,而没有别的。应该如何知道给定的参数是主题名称还是帖子主题?
我认为您可以在路线中使用模式