在Laravel 5中调用函数后重新路由

时间:2015-10-13 19:47:54

标签: php laravel-5 laravel-routing

我在使用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

我真的需要一种方法来转回路线。

3 个答案:

答案 0 :(得分:1)

返回重定向,而不是返回视图。这将导致网址更改:

public function deleteArticle(Request $request, $id) 
{
        $article = Article::find($id);
        $article->delete();
        return redirect('/some-url');
}

或者如果使用命名路线:

return redirect()->route('some.route.name');

Source

答案 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,你应该得到一个错误堆栈,这将有助于调试问题。很抱歉,在我完成打字之前,互联网出现了延迟。