Php Laravel 8-表单未使用唯一输入保存
我正在尝试用两个输入提交表单。一个输入名为“name”,第二个输入名为“username”,用户名是唯一的。尝试提交时未保存表单。我怎样才能解决这个问题 我的控制器是:Php Laravel 8-表单未使用唯一输入保存,php,laravel,Php,Laravel,我正在尝试用两个输入提交表单。一个输入名为“name”,第二个输入名为“username”,用户名是唯一的。尝试提交时未保存表单。我怎样才能解决这个问题 我的控制器是: public function profileSettingsPost(request $request){ $request->validate([ 'name' => ['nullable','string', 'max:64'],
public function profileSettingsPost(request $request){
$request->validate([
'name' => ['nullable','string', 'max:64'],
'username' => ['nullable','string','max:16','unique:users'],
]);
$user = Auth::user();
$user->name = $request->name;
$user->username = $request->username;
if($user->save()){
return redirect()->route('getProfile',['username'=>$user->username]);
}else{
return back();
}
试试这个:
$input = $request->all();
$rules = [
name' => ['nullable', 'string', 'max:64'],
username' => ['nullable','string','max:16','unique:users,username_column']
];
$massages = [] ;
$fieldNames = [];
$validation = Validator::make($input, $rules, $massages, $fieldNames);
if($validation->fails()){
return redirect()->route('getProfile',['username'=>$user->username]);
}else {
return back();
}
不要忘记键入提示用户模型和验证外观
use App\Models\User;
use Illuminate\Support\Facades\Validator;