Laravel:在控制器外使用重定向?

Tiế*_*ion 3 redirect controller laravel

我有路线

Route::get('/abc', function () {
    return view('common.abc');
});
Run Code Online (Sandbox Code Playgroud)

当我访问http://domain.com/abc 时,它运行良好。

在控制器中,我使用

Redirect::to('/abc')
Run Code Online (Sandbox Code Playgroud)

它工作得很好。

==> 但是,我需要在控制器之外调用重定向(模型、Lib 等...)我该怎么做?在控制器外部调用重定向时,我总是收到错误消息。

小智 8

use Illuminate\Support\Facades\Redirect;

Redirect::to(url('blah-blah'))->send();
Run Code Online (Sandbox Code Playgroud)

您还可以使用带有参数的命名路由,如下所示:

Redirect::route('route.name.here', ['foo' => 'bar'])->send();
Run Code Online (Sandbox Code Playgroud)

如果您位于控制器中,通常会返回重定向。但是,在控制器之外,您需要使用 来->send()告诉它“立即开始”。


小智 5

我认为这应该有所帮助。

abort(200, '', ['Location' => '/abc']);
Run Code Online (Sandbox Code Playgroud)