Laravel:如何在控制器方法执行后重定向

时间:2017-03-28 05:11:17

标签: php laravel redirect blade

web.php

Route::post('caption/{id}/delete', 'DetailController@deleteCaption');

DetailController.php

public function deleteCaption(Request $request, $id) {
    $caption = Caption::findOrFail($id);
    $caption->delete(); //doesn't delete permanently

    return response(204);
}

admin.blade.php

<p value='{{$caption->id}}'>{{$caption->content}}</p>
<form action="caption/{{$caption->id}}/delete" method="post">
<button type="submit">Delete caption</button>
</form> 
<form action="caption/{{$caption->id}}/approve" method="post">
<button type="submit">Accept caption</button>
</form>     

我想这样做,以便在删除图像后,用户被重定向回管理页面,位于localhost:8000 / admin。

我该怎么做?文档对我来说是不可理解的。

4 个答案:

答案 0 :(得分:3)

您可以重定向

public function deleteCaption(Request $request, $id) {
    $caption = Caption::findOrFail($id);
    $caption->delete(); //doesn't delete permanently

    return redirect()->to('link/to/anywhere');
}


您可以像这样重定向

return redirect()->back();

到你的上一个州。

OR

return route('yourRouteName');
//if there's parameters
return route('yourRouteName', ['id' => 1]);

答案 1 :(得分:1)

您只需在web.php中重定向到您定义的路线:

public function deleteCaption(Request $request, $id) {
    $caption = Caption::findOrFail($id);
    $caption->delete(); //doesn't delete permanently

    return redirect('admin');
}

https://laravel.com/docs/5.4/responses#redirects

检查路由和刀片文档也可能有所帮助。

https://laravel.com/docs/5.4/routing

https://laravel.com/docs/5.4/blade

答案 2 :(得分:0)

因为您想返回同一页面。你可以使用Laravel的后退功能。

 return back();

将用户重定向回其来源的页面。

答案 3 :(得分:0)

要重定向回使用==&gt; return redirect() - &gt; back();

要重定向到特定路线,请使用==&gt; return return redirect() - &gt; route(&#39; route-name&#39;);