php - Laravel 注册控制器错误 - Response::setContent() 必须是字符串类型或 null
问题描述
尝试注册用户时遇到此错误。我想注册通过了,因为数据被插入到数据库中,但随后它抛出了这个错误,而不是重定向到仪表板。
我对此有点陌生,所以我不确定错误来自哪里。我已经尝试在网上搜索解决方案,但没有遇到任何问题。
这是我的注册控制器
protected $redirectTo = RouteServiceProvider::HOME;
protected function redirectTo()
{
$user = auth()->user();
if ($user->role == 'guest') {
return route('guest.profile');
} else if ( $user->role == 'superadmin' ) {
return route('superadmin.home');
}
}
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
]);
}
protected function create(array $data)
{
return User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
解决方案
终于看到我的错误了。应该在重定向方法中添加一个 else 块。添加它并且错误消失了。
protected function redirectTo()
{
$user = auth()->user();
if ($user->role == 'guest') {
return route('guest.profile');
} else if ( $user->role == 'superadmin' ) {
return route('superadmin.home');
} else {
return route('home');
}
}
谢谢大家的帮助
推荐阅读
- jboss - Keycloak java api为给定客户端获取服务帐户用户
- javascript - 当用户单击文本输入框时如何在@Html.EditorFor() 中显示下拉列表
- javascript - 如何获得类似于 iframe 提供的 div 的隔离级别?
- postgresql - 在存储过程 postgresql 中返回表
- sql - 如何在 sql fiddle 中创建 2 个具有外键和主键的表?
- angular6 - Angular 8在模板中的变量内显示变量
- python - 使用 pyttsx3 时出现 ModuleNotFoundError
- authentication - 无效的用户或密码或帐户由于多次登录尝试失败而被阻止
- hyperlink - 单击链接时在新选项卡或窗口中打开特定链接
- javascript - 如何在magento 2的自定义模块中覆盖第三方模块Js小部件