Как пропустить пустое поле загрузки файла при редактировании

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Как пропустить пустое поле загрузки файла при редактировании

Сообщение Ghost_nsk »

Всем хелло, товарищи подскажите пжл :)
реализуем загрузку файла, все ок
при редактировании файла можно заменить его на новый,
а что делать, если например, мне только нужно поменять инфу по этому файлу, но сам файл оставить тот же самый?
юзаем стандартный CUploadedFile
elessar
Сообщения: 23
Зарегистрирован: 2012.04.21, 11:13

Re: Как пропустить пустое поле загрузки файла при редактиров

Сообщение elessar »

Ghost_nsk писал(а):а что делать, если например, мне только нужно поменять инфу по этому файлу, но сам файл оставить тот же самый?
юзаем стандартный CUploadedFile
Использовать сценарии. При создании file required, при редактировании нет. Или я что то не так понял?
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Как пропустить пустое поле загрузки файла при редактиров

Сообщение Ghost_nsk »

elessar писал(а):Использовать сценарии. При создании file required, при редактировании нет. Или я что то не так понял?
Прикол в том, что просто отключить загрузку файлов в сценарии редактирования как бы не пойдет, ибо отнюдь весьма немаловероятно, что юзер захочет поменять и описание и заменить старый файл на новый.
elessar
Сообщения: 23
Зарегистрирован: 2012.04.21, 11:13

Re: Как пропустить пустое поле загрузки файла при редактиров

Сообщение elessar »

Я не поручусь за то сейчас буду прав, тк давно с yii и загрузкой файлов не работал, но вполне уверен что это возможно.
Пусть есть галерея изображений. Создаём новую сущность - загрузка файла обязательна. Редактируем - опциональна.
Пользователь изменил описание и не добавил файл - меняем описание. Изменил файл - меняем файл. Изменил описание и файл - меняем и то и то.
Один if и немного кода следить за файлами.
pashkash
Сообщения: 11
Зарегистрирован: 2012.03.27, 15:29

Re: Как пропустить пустое поле загрузки файла при редактиров

Сообщение pashkash »

я решил эту проблему через создание $old_src_img_logo, в которой хранил старые данные поля src_img_logo..
и соотв в методе beforeSave() поставил проверку:
if ($this->src_img_logo)
{
...
}
else
$this->src_img_logo = $_POST['Attractions']['old_src_img_logo'];

сам я, разумеется, вручную ничего не делаю в модели, а модифицировал генератор кода, чтобы он автоматически и переменную заводил и проверку ставил с присвоением и на форме hidden-поле со старым значением рисовал.. при этом последнее можно даже не делать, а забирать из модели перед сохранением.. но я в yii новичок, возможно, кто-то предложит вариант понативнее..
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Как пропустить пустое поле загрузки файла при редактиров

Сообщение Ghost_nsk »

всем спасибо, порешал через
1) прописание if логики в контроллере
2) в модели: 'file', 'required' и 'allowEmpty' => TRUE :D
sconst
Сообщения: 25
Зарегистрирован: 2013.05.04, 13:53

Re: Как пропустить пустое поле загрузки файла при редактировании

Сообщение sconst »

Вот бы мне узнать как? Тоже столкнулся с такой проблемой по логике if в контроллере
Ответить