Laravel: how to redirect controller execution
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>
I want to make it so that after deleting the image, the user is redirected back to the admin page located at localhost: 8000 / admin.
How can i do this? The documentation is not clear to me.
+3
source to share
4 answers
You can redirect like
public function deleteCaption(Request $request, $id) {
$caption = Caption::findOrFail($id);
$caption->delete(); //doesn't delete permanently
return redirect()->to('link/to/anywhere');
}
OR
You can redirect this like
return redirect()->back();
into your last state.
OR
return route('yourRouteName');
//if there parameters
return route('yourRouteName', ['id' => 1]);
+2
source to share
You can just redirect your specific route to your 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
Checking routing protocols and blades can also help.
+1
source to share