问题
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 I delete an image, the user is redirected back to the admin page, located at localhost:8000/admin.
How can I do this? Documentation isn't understandable to me.
回答1:
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 like this
return redirect()->back();
to your last state.
OR
return route('yourRouteName');
//if there's parameters
return route('yourRouteName', ['id' => 1]);
回答2:
You can simply redirect to your defined route in 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 out the routing and blade docs may assist as well.
https://laravel.com/docs/5.4/routing
https://laravel.com/docs/5.4/blade
回答3:
Since you want to return back to the same page. You can use Laravel's back function.
return back();
To redirect user back to the page it came from.
回答4:
To redirect back use
return redirect()->back();
To redirect to specific route use
return return redirect()->route('route-name');
来源:https://stackoverflow.com/questions/43061040/laravel-how-to-redirect-after-controller-method-execution