这是我的导航栏:
<div class="col-md-2">
<ul class="list-group-item">
<li><a href="/posts"><i class="fa fa-fw fa-file</i> All Post</a>
</li>
<li><a href="/posts/create"><i class="fa fa-fw fa-plus-circle"></i> Create New Post</a></li>
<li><a href="/posts/manage"><i class="fa fa-fw fa-tasks"></i> Manage Posts</a></li>
</ul>
</div>
这是我的route.php
Route::group(['prefix' => 'posts'], function(){
Route::get('', 'PostController@index');
Route::get('create', 'PostController@create');
Route::post('confirm', 'PostController@confirmation');
Route::get('{postID}', 'PostController@show');
Route::get('posts/manage', 'PostController@manage');});
我希望当我点击&#34;管理帖子&#34;按钮,它会将我重定向到manage()
中的PostController
功能。
但是当我点击它时,它会重定向到storage/framework/views
中属于show()
PostController
的视图。
我不知道为什么以及如何将其设为正确的网址。
有人可以帮我这个吗?
谢谢。
答案 0 :(得分:0)
首先,您的链接指向/posts/management
,而不是/posts/manage
。其次,您已为此路由组添加前缀posts
,因此路径posts/manage
将在网址/posts/posts/manage
下可用。
您还希望在manage
路由之前移动{postID}
路由,因为{postID}
只会抓住任何,因此路由器必须首先检查管理路线,只有当它不匹配时,才能实现全面的路线。
您应该使用Route Parameters: Regular Expression Constraints控制被接受为有效postID
的内容。
Route::get('{postID}', 'PostController@show')->where('id', '[0-9]+');