头像始终为空

问题描述 投票:0回答:1

我试图使用$ attachOne关系将图像/文件附加到用户。我似乎无法从组件上传文件。这是我的一段代码:

模型:

public $rules = [
        'email'    => 'required|between:6,255|email|unique:users',
        'avatar'   => 'nullable|image|max:4000',
        'username' => 'required|between:2,255|unique:users',
        'password' => 'required:create|between:4,255|confirmed',
        'password_confirmation' => 'required_with:password|between:4,255',
    ];

    public $attachOne = [
        'avatar' => \System\Models\File::class
    ];

    protected $fillable = [
        'name',
        'surname',
        'login',
        'avatar',
        'username',
        'email',
        'telegram',
        'phone',
        'skype',
        'password',
        'password_confirmation'
    ];

零件:

 public function onUpdate()
    {
        if (!$user = $this->user()) {
            return;
        }

        if (Input::hasFile('avatar')) {
            $user->avatar = Input::file('avatar');
        }


        $user->fill(post());           
        $user->save();
        return $redirect;

}

一块default.htm代码:

{{ form_ajax('onUpdate', { model: user,files: true  }) }}
 <input type="file" name="avatar">
php laravel octobercms
1个回答
0
投票

在执行$user->avatar方法后,你需要做fill()。此外,您需要将文件名保存到DB,而不是文件本身:

$user->avatar = request()->avatar->getClientOriginalName();
© www.soinside.com 2019 - 2024. All rights reserved.