我正在关注Laravel YouTube tutorial,但是当我改变这一行时:
return redirect()->back();
为:
return redirect()->route('dashboard');
在UserController.php中的我收到此错误:
Connection.php第729行中的QueryException:SQLSTATE [23000]:完整性 约束违规:1048专栏'电子邮件'不能为null(SQL:insert 进入
users
(first_name
,password
,updated_at
,created_at
)值(,, y $ WNp1qKLTDNktowIC0LRKE.SjCOxm8wZV97BRCLAcPk3wsmGR9mJvG,2017-07-09 20:09:52,2017-07-09 20:09:52))
这是整个功能:
public function postSignUp(Request $request)
{
$email = $request['email'];
$first_name = $request['first_name'];
$password = bcrypt($request['password']);
$user = new User();
$user->email = $email;
$user->first_name = $first_name;
$user->password = $password;
$user->save();
return redirect()->route('dashboard');
//return redirect()->back(); }
我尝试了$email = $request->input('email');
但没有任何改变。
任何人都能给我一个解释和解决方案吗? 哦,这是我的注册表格
<form action="{{ route('signup') }}" method="post">
<div class="form-group">
<label for="email">Your E-mail</label>
<input class="form-control" type="text" name="email" id="email">
</div>
<div class="form-group">
<label for="first_name">Your First name</label>
<input class="form-control" type="text" name="first_name" id="first_name">
</div>
<div class="form-group">
<label for="password">Your Password</label>
<input class="form-control" type="password" name="password" id="password">
</div>
<button type="submit" class="btn btn-primary" >Submit</button>
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
正如我所说它与return redirect()->back();
答案 0 :(得分:0)
您的请求对象上的email
字段为空,请务必确认该字段是否有值使用dd($request->email)
或dd($request->input('email')
打印。
答案 1 :(得分:0)
而不是:
return redirect()->route('dashboard');
这样做:
return redirect(route('dashboard'));
可能会工作。
我使用相同版本的框架,当我按照我的方式使用redirect
代码时,它始终有效。
我承认,如果你分享你的路线会更容易,但乍看之下我认为是不同的。
答案 2 :(得分:0)
我发现问题出在我的路线文件中,我混合了
Route::get('/dashboard', [
'uses' => 'UserController@getDashboard',
'as' => 'dashboard'
带
Route::post('/signup', [
'uses' => 'UserController@postSignUp',
'as' => 'signup'
感谢每个人