我在使用Laravel 5时已经湿透了,我需要一些关于路由的建议。
我一遍又一遍地遇到问题,我觉得我绝对没有抓住这样做的正确方法。
假设我有路线:
Route::post('viewarticles', 'LoginController@user_check_article_list');
这是我登录后被带走的地方。 这条路线向我展示了我可以编辑的文章。在该页面上,这条路线将带您到我有一个文章列表和删除旁边的按钮。当我点击删除时,我将其链接到
delete/{{ $article->id }}
然后我有一条路线:
Route::get('delete/{id}', 'ArticleController@deleteArticle');
然后转到此功能:
public function deleteArticle(Request $request, $id) {
$article = Article::find($id);
$article->delete();
$articles = Article::latest('published_at')->Published()->get();
return view('admin.article_edit_list',['articles'=>$articles]);
}
最后两行是我重建该文章列表然后加载视图。
问题:在我的网址中,页面仍然是../ delete / someid
我真的需要一种方法来转回路线。
答案 0 :(得分:1)
返回重定向,而不是返回视图。这将导致网址更改:
public function deleteArticle(Request $request, $id)
{
$article = Article::find($id);
$article->delete();
return redirect('/some-url');
}
或者如果使用命名路线:
return redirect()->route('some.route.name');
答案 1 :(得分:0)
因此,如果您的网址位于/ delete / {id},您需要重定向到显示文章视图
public function deleteArticle(Request $request, $id) {
$article = Article::find($id);
$article->delete();
return \Redirect::to('show_articles.view');
}
答案 2 :(得分:-1)
你如何发送删除请求?是通过ajax吗?
如果是这样,您需要使用js /最可能的jQuery在ajax调用的success方法中重定向到您的视图?
.success(function(){
location.href = '/your/new/view';
});
值得检查你的变量也是通过你的控制器
public function ...
echo $id; exit(); // or dd($id);
并检查您的收集已加载 $ articles = ... DD($ artcles); 后视图(...
如果你进入app / config / app.php并设置debug = true,你应该得到一个错误堆栈,这将有助于调试问题。很抱歉,在我完成打字之前,互联网出现了延迟。