Laravel 求解正确 return class 定义

Laravel solve correct return class definitation

我在 Laravel 中使用的一个 class 我有这个方法:

public function submit(): \Illuminate\Http\RedirectResponse
{
    $this->validate($this->rules);
    if (Auth::attempt(['username' => $this->username, 'password' => $this->password])) {
        $this->emmitMessage('', 'Your Welcome', 'success');
        return redirect()->route('administrator','en');
    } else {
        $this->emmitMessage('', 'Username or password is incorrect', 'error');
    }
}

private function emmitMessage($title = '', $text = '', $type = 'info')
{
    $this->emit('registerNotification', [
        // ...
    ]);
}

在我有 return redirect()->route('administrator','en') 的这个方法中,它是 \Illuminate\Http\RedirectResponse 的实例,成功登录后我收到此错误:

App\Http\Livewire\Auth\LoginComponent::submit(): 
    Return value must be of type Illuminate\Http\RedirectResponse,
    Livewire\Redirector returned 

我认为这是正确的,但我无法修复此错误

我还没有使用 Laravel Liwewire,但我相信它会以某种方式覆盖默认的 Laravel 重定向系统,所以:

return redirect()->route('administrator','en');

正在返回自定义 Liwewire 重定向响应。

这就是为什么可能而不是:

public function submit(): \Illuminate\Http\RedirectResponse

你应该试试:

public function submit()

public function submit(): \Livewire\Redirector

让它发挥作用