Laravel:无法路由到预期的URL

时间:2016-06-21 05:36:33

标签: php laravel url view routes

这是我的导航栏:

 <div class="col-md-2">
        <ul class="list-group-item">
            <li><a href="/posts"><i class="fa fa-fw fa-file</i>&nbsp;&nbsp;All Post</a>
            </li>
            <li><a href="/posts/create"><i class="fa fa-fw fa-plus-circle"></i>&nbsp;&nbsp;Create New Post</a></li>
            <li><a href="/posts/manage"><i class="fa fa-fw fa-tasks"></i>&nbsp;&nbsp;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的视图。

我不知道为什么以及如何将其设为正确的网址。

有人可以帮我这个吗?

谢谢。

1 个答案:

答案 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]+');