Laravel - 糟糕,没有可用的页面
Laravel - Oops no page available
我在 Laravel 中有一个项目,我有一个包含 link 的页面。
<ul class="nav nav-second-level">
<li>
<a href="{{route('admin.posts.index')}}">All Posts</a>
</li>
<li>
<a href="{{route('admin.posts.create')}}">Create Post</a>
</li>
<li>
<a href="{{route('admin.comments.index')}}">All Comments</a>
</li>
</ul>
我遇到的问题是,当我点击 link:
<a href="{{route('admin.posts.create')}}">Create Post</a>
我收到错误:
Oops no page found
这些是我的路线:
Route::group(['middleware' => 'admin', 'as' => 'admin.'], function() {
Route::get('/admin', function(){
return view('admin.index');
});
Route::get('/admin/posts/{slug}', 'AdminPostsController@post')->name('posts.post');
Route::resource('admin/users', 'AdminUsersController');
Route::resource('admin/posts', 'AdminPostsController');
Route::resource('admin/categories', 'AdminCategoriesController');
Route::resource('admin/media', 'AdminMediasController');
Route::resource('admin/comments', 'PostCommentsController');
Route::resource('admin/comment/replies', 'CommentRepliesController');
});
admin.posts.create
路由的计算结果为 admin/posts/create
。然而,问题是这个路由定义:
Route::get('/admin/posts/{slug}', 'AdminPostsController@post')->name('posts.post');
因为此路由是在您的 admin/posts
资源路由之前定义的,所以 admin/posts/create
将不会匹配 create
资源操作,而是匹配 post
操作,其中{slug}
计算为 "create"。我猜 "Oops no page found" 消息是您自己的错误消息,因为您的 post
操作不希望处理 "create" slug。
我相信将该路由定义移动到您的资源路由定义之后(或者,至少在 admin/posts
资源定义之后)应该可以解决您的问题。
我在 Laravel 中有一个项目,我有一个包含 link 的页面。
<ul class="nav nav-second-level">
<li>
<a href="{{route('admin.posts.index')}}">All Posts</a>
</li>
<li>
<a href="{{route('admin.posts.create')}}">Create Post</a>
</li>
<li>
<a href="{{route('admin.comments.index')}}">All Comments</a>
</li>
</ul>
我遇到的问题是,当我点击 link:
<a href="{{route('admin.posts.create')}}">Create Post</a>
我收到错误:
Oops no page found
这些是我的路线:
Route::group(['middleware' => 'admin', 'as' => 'admin.'], function() {
Route::get('/admin', function(){
return view('admin.index');
});
Route::get('/admin/posts/{slug}', 'AdminPostsController@post')->name('posts.post');
Route::resource('admin/users', 'AdminUsersController');
Route::resource('admin/posts', 'AdminPostsController');
Route::resource('admin/categories', 'AdminCategoriesController');
Route::resource('admin/media', 'AdminMediasController');
Route::resource('admin/comments', 'PostCommentsController');
Route::resource('admin/comment/replies', 'CommentRepliesController');
});
admin.posts.create
路由的计算结果为 admin/posts/create
。然而,问题是这个路由定义:
Route::get('/admin/posts/{slug}', 'AdminPostsController@post')->name('posts.post');
因为此路由是在您的 admin/posts
资源路由之前定义的,所以 admin/posts/create
将不会匹配 create
资源操作,而是匹配 post
操作,其中{slug}
计算为 "create"。我猜 "Oops no page found" 消息是您自己的错误消息,因为您的 post
操作不希望处理 "create" slug。
我相信将该路由定义移动到您的资源路由定义之后(或者,至少在 admin/posts
资源定义之后)应该可以解决您的问题。