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

我的专家设置在一页中添加和编辑。一切正常但有一个问题。当我编辑所有内容时,它不会保存我编辑的内容。我不明白为什么。专家有一对一的表(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',

    ];


慕姐4208626
浏览 106回答 2
2回答

HUX布斯

使用$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());        }

慕哥6287543

改变创造          if (is_null($user->profile_settings())){              $user->profile_settings()->create($data);          }或更改为 firstOrCreate(我对此选项不太有信心)$profile = $user->profile_settings()->firstOrCreate($data);$profile->save();那么你不需要查询关系并且可以删除 if 语句
打开App,查看更多内容
随时随地看视频慕课网APP