我正在尝试注册一类用户(客户),但我目前遇到了这个错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause' (SQL: select count(*) as aggregate from `users` where `name` = john123)该列确实存在于数据库表“customers”中,另外这个 Laravel 生成的 SQL 查询看起来很奇怪? 注册控制器:protected function createCustomer(Request $request) { // dd($request->all()); // $this->validator($request->all())->validate(); $validator = Validator::make($request->all(), [ 'name' => ['required', 'alpha_dash', 'string', 'max:25', 'unique:users'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:6', 'confirmed'], ]); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::back()->withErrors($validator)->withInput(); foreach($errors->all() as $error) { echo $error; } } elseif ($validator->passes()) { $customer = customer::create([ 'name' => $request['name'], 'email' => $request['email'], 'password' => Hash::make($request['password']), ]); return redirect()->intended('login/customer'); } }任何帮助都会非常棒!谢谢 :)
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
您正在验证没有 name 列的 users 表中的唯一性。所以它给了你错误。改用客户表。
$validator = Validator::make($request->all(), [
'name' => ['required', 'alpha_dash', 'string', 'max:25', 'unique:customers'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:customers'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
]);
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
您的错误表示在users
表中找不到该列,并且您已经提到该列存在于customers
表中。
请验证您是否使用了protected $table = 'tableName';
属性,如果使用了请检查是否指定了正确的表名。
- 2 回答
- 0 关注
- 257 浏览
添加回答
举报
0/150
提交
取消