Обязательность заполнения файла в форме?
Добавлено: 2017.05.02, 10:57
Добрый день. Подскажите, пожалуйста, можно ли данную задачу реализовать средствами yii2?
1. Имеется стандартная модель с аттрибутами:
1. iconFile
2. icon
Использую kartik-v/yii2-widget-fileinput, загрузка файлов работает отлично (в форме поле iconFile, строку названия изображения сохраняю в icon), все ок, кроме одного.
Мне необходимо указать 'required' для iconFile и если для actionCreate это правило будет отрабатывать отлично, то для actionUpdate будет выведена ошибка "поле необходимо заполнить" это логично т.к. поле iconFile пустое, но мне необходимо что-бы 'requred' не отрабатывало но iconFile если icon !== null.
Так-же есть вопрос по удалению файла. В данный момент суть такая:
1. Общая форма с полями.
2. При клике на кнопку удалить вызывается этот action, который грузит модель по id:
В итоге фактически в БД я имею строку с icon = null, а в п.1. формы icon у меня все еще название изображения.
Всем спасибо за советы.
1. Имеется стандартная модель с аттрибутами:
1. iconFile
2. icon
Код: Выделить всё
[['iconFile'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
Мне необходимо указать 'required' для iconFile и если для actionCreate это правило будет отрабатывать отлично, то для actionUpdate будет выведена ошибка "поле необходимо заполнить" это логично т.к. поле iconFile пустое, но мне необходимо что-бы 'requred' не отрабатывало но iconFile если icon !== null.
Так-же есть вопрос по удалению файла. В данный момент суть такая:
1. Общая форма с полями.
2. При клике на кнопку удалить вызывается этот action, который грузит модель по id:
Код: Выделить всё
public function actionDeleteIcon()
{
$id = Yii::$app->request->post('key');
$model = $this->findModel($id);
$model->scenario = Offers::SCENARIO_DELETE_ICON;
if (DeleteFile::deleteFile($model->icon)) {
$model->icon = null;
if ($model->save()) {
return true;
}
}
return false;
}
Всем спасибо за советы.