Php Laravel 8-表单未使用唯一输入保存

Php Laravel 8-表单未使用唯一输入保存,php,laravel,Php,Laravel,我正在尝试用两个输入提交表单。一个输入名为“name”,第二个输入名为“username”,用户名是唯一的。尝试提交时未保存表单。我怎样才能解决这个问题 我的控制器是: public function profileSettingsPost(request $request){ $request->validate([ 'name' => ['nullable','string', 'max:64'],

我正在尝试用两个输入提交表单。一个输入名为“name”,第二个输入名为“username”,用户名是唯一的。尝试提交时未保存表单。我怎样才能解决这个问题

我的控制器是:

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;