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
让它发挥作用
我在 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
让它发挥作用