Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在调用Laravel 5中的函数后重新路由_Php_Laravel 5_Laravel Routing - Fatal编程技术网

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

Php 在调用Laravel 5中的函数后重新路由,php,laravel-5,laravel-routing,Php,Laravel 5,Laravel Routing,我的脚被Laravel 5弄湿了,我需要一些关于路线的建议 我一次又一次地遇到一个问题,我觉得我肯定没有掌握正确的方法来解决这个问题 假设我有一条路线: Route::post('viewarticles', 'LoginController@user_check_article_list'); Route::get('delete/{id}', 'ArticleController@deleteArticle'); 这是我登录后被带到的地方。 此路线显示我可以编辑的文章。在这条路线带你去的

我的脚被Laravel 5弄湿了,我需要一些关于路线的建议

我一次又一次地遇到一个问题,我觉得我肯定没有掌握正确的方法来解决这个问题

假设我有一条路线:

Route::post('viewarticles', 'LoginController@user_check_article_list');
Route::get('delete/{id}', 'ArticleController@deleteArticle');
这是我登录后被带到的地方。 此路线显示我可以编辑的文章。在这条路线带你去的页面上,我有一个文章列表,旁边有删除按钮。当我单击“删除”时,我已将其链接到

delete/{{ $article->id }}
然后我有一条路线:

Route::post('viewarticles', 'LoginController@user_check_article_list');
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]);

}
最后两行是我重建文章列表,然后加载视图

问题:在我的url中,页面仍然是../delete/someid


我真的需要一种方法来返回路由。

如何发送删除请求?它是通过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,您应该会得到一个错误堆栈,这将有助于调试问题。很抱歉,在我完成键入之前,internet出现了延迟。

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

public function deleteArticle(Request $request, $id) 
{
        $article = Article::find($id);
        $article->delete();
        return redirect('/some-url');
}
或者,如果使用命名路由:

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

因此,如果您的url位于/delete/{id},则需要重定向到显示文章视图

  public function deleteArticle(Request $request, $id) {

    $article = Article::find($id);
    $article->delete();
    return \Redirect::to('show_articles.view');

  }

不,我只是路由到一个函数。看看我的编辑,让我知道这是否有帮助,我的互联网在我完成之前就坏了。对不起。这不是我真正遇到的问题…我正在尝试让我的url反映我所在的页面。我可以做ajax解决方案,但我猜有一个答案与laravel路由相关。我在这里没有什么需要调试的…我找到你了,你需要在删除后重定向到你的文章视图查看我的第二个答案我也尝试了命名路由方法,这也很有效,对于那些感兴趣的人:谢谢@Watcher你想通过用户显示文章,为什么你需要显示post方法路由,我的意思是为什么方法
get
g如果用户进行了身份验证,则通过关系
一对多
让所有文章通过用户的口才获得。有意义吗?@nibbc比您提到的删除文章更重要的是,首先删除文章,然后根据用户进行
删除