为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel,如果我编辑所有字段都不起作用。不保存编辑的内容

Laravel,如果我编辑所有字段都不起作用。不保存编辑的内容

PHP
慕姐4208626 2022-12-30 17:30:18
我的专家设置在一页中添加和编辑。一切正常但有一个问题。当我编辑所有内容时,它不会保存我编辑的内容。我不明白为什么。专家有一对一的表(profile_settings)。配置文件设置迁移        Schema::create('profile__settings', function (Blueprint $table) {            $table->id();            $table->integer('user_id')->unsigned();            $table->string('first_name')->nullable();            $table->string('last_name')->nullable();            $table->string('phone_number')->nullable();            $table->string('gender')->nullable();            $table->string('date_of_birth')->nullable();            $table->text('about_me')->nullable();            $table->string('address')->nullable();            $table->string('city')->nullable();            $table->string('country')->nullable();            $table->string('postal_code')->nullable();            $table->timestamps();        });配置文件_设置模型class Profile_Settings extends Model{    // Fill in db    protected $fillable = [        'first_name', 'last_name', 'phone_number',        'gender', 'date_of_birth', 'about_me',        'address', 'city', 'country', 'postal_code',    ];    // Profile settigns model belongs to User    public function user(){        return $this->belongsTo(User::class);    }}用户模型(专家)class User extends Authenticatable{    use Notifiable;    /**     * The attributes that are mass assignable.     *     * @var array     */    protected $fillable = [        'name', 'email', 'password',    ];    /**     * The attributes that should be hidden for arrays.     *     * @var array     */    protected $hidden = [        'password', 'remember_token',    ];    /**     * The attributes that should be cast to native types.     *     * @var array     */    protected $casts = [        'email_verified_at' => 'datetime',    ];
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

使用$request->validate()可能会有问题。如果验证失败,它会尝试返回到上一页,这并不总是我们想要的。尝试这样做。


          // Auth Specialist

          $user = Auth::user();

          $data => $request->input(); //returns array of all input values.

          // You might want to use only() instead so as to specify the keys you need


          // Data Specialist Validate

          $rules = [

              'first_name' => 'nullable|string',

              ...

              'postal_code' => 'nullable|integer',

          ]);


        $validation = validator($data, $roles);


        if($validation->fails()) {

             // do what you wish with the error

            return back()->withErrors($validate->errors());

            //return response($validation->errros());

        }


查看完整回答
反对 回复 2022-12-30
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

改变创造


          if (is_null($user->profile_settings())){

              $user->profile_settings()->create($data);

          }

或更改为 firstOrCreate(我对此选项不太有信心)


$profile = $user->profile_settings()->firstOrCreate($data);

$profile->save();


那么你不需要查询关系并且可以删除 if 语句


查看完整回答
反对 回复 2022-12-30
  • 2 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信