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


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.

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

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

+1


source


Since you want to return to the same page. You can use Laravel's restore feature.

 return back();

      

To redirect the user back to the page they came from.

0


source


To redirect use back ==> return redirect () -> back ();

To redirect to using a specific route ==> return return redirect () → route ('route-name');

0


source







All Articles