在 Laravel 5 中调用函数后重新路由
rerouting after calling a function in Laravel 5
我正在尝试 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]);
}
最后两行是我重建文章列表然后加载视图。
问题:在我的 url 中,页面仍然是 ../delete/someid
我真的只是需要一种方法来返回路由。
如何发送删除请求?是通过 ajax 吗?
如果是这样,您需要使用 js 在 ajax 调用的成功方法中重定向到您的视图/很可能 jQuery?
.success(function(){
location.href = '/your/new/view';
});
值得检查一下您的变量是否也通过了您的控制器
public function ...
echo $id; exit(); // or dd($id);
并检查您的 collection 已加载
$文章 = ...
dd($文章);
重新运行视图(...
另外,如果您进入 app/config/app.php 并设置 debug=true,您应该会得到一个有助于调试问题的错误堆栈。抱歉,我还没来得及打完字就断网了。
不是 return 视图,而是 return 重定向。这将导致 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');
}
我正在尝试 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]);
}
最后两行是我重建文章列表然后加载视图。
问题:在我的 url 中,页面仍然是 ../delete/someid
我真的只是需要一种方法来返回路由。
如何发送删除请求?是通过 ajax 吗?
如果是这样,您需要使用 js 在 ajax 调用的成功方法中重定向到您的视图/很可能 jQuery?
.success(function(){
location.href = '/your/new/view';
});
值得检查一下您的变量是否也通过了您的控制器
public function ...
echo $id; exit(); // or dd($id);
并检查您的 collection 已加载 $文章 = ... dd($文章); 重新运行视图(...
另外,如果您进入 app/config/app.php 并设置 debug=true,您应该会得到一个有助于调试问题的错误堆栈。抱歉,我还没来得及打完字就断网了。
不是 return 视图,而是 return 重定向。这将导致 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');
}