хотя загрузка файла в yii2, но все еще получение проверки, что пик профиля не может быть пустым. мой код следующий из правила. пожалуйста, помогите мне, как преодолеть эту проблему.
public function rules() {
return [
[['profile_pic'], 'file'],
[ ['profile_pic'], 'required', 'on' => 'update_pic']];
}
от контроллера
$model = new PostForm(['scenario' => 'update_pic']);
if ($model->load(Yii::$app->getRequest()->getBodyParams(), '') && $model->validate()) {
return ['status' => 1, 'message' => Yii::$app->params['messages']['post_success']];
} else {
$model->validate();
return $model;
}
Так же, как @Bizley и @sm1979 прокомментировали, вы не обрабатываете загрузку файла, как это должно быть сделано.
Фактический файл получен не так, как другие Post params, поэтому вам нужно использовать
UploadedFile::getInstance
, чтобы получить экземпляр файла и назначить егоprofile_pic
атрибуту в вашей модели.в контроллере:
в вашей модели:
Наконец, просто рекомендация: прочитайте окончательное руководство по Yii 2.0 . Чтение этого и документации по API Yii2-лучший способ узнать Yii2 самостоятельно.