Всем хелло, товарищи подскажите пжл
реализуем загрузку файла, все ок
при редактировании файла можно заменить его на новый,
а что делать, если например, мне только нужно поменять инфу по этому файлу, но сам файл оставить тот же самый?
юзаем стандартный CUploadedFile
Как пропустить пустое поле загрузки файла при редактировании
Re: Как пропустить пустое поле загрузки файла при редактиров
Использовать сценарии. При создании file required, при редактировании нет. Или я что то не так понял?Ghost_nsk писал(а):а что делать, если например, мне только нужно поменять инфу по этому файлу, но сам файл оставить тот же самый?
юзаем стандартный CUploadedFile
- Ghost_nsk
- Сообщения: 825
- Зарегистрирован: 2012.01.01, 00:45
- Откуда: Новосибирск
- Контактная информация:
Re: Как пропустить пустое поле загрузки файла при редактиров
Прикол в том, что просто отключить загрузку файлов в сценарии редактирования как бы не пойдет, ибо отнюдь весьма немаловероятно, что юзер захочет поменять и описание и заменить старый файл на новый.elessar писал(а):Использовать сценарии. При создании file required, при редактировании нет. Или я что то не так понял?
Re: Как пропустить пустое поле загрузки файла при редактиров
Я не поручусь за то сейчас буду прав, тк давно с yii и загрузкой файлов не работал, но вполне уверен что это возможно.
Пусть есть галерея изображений. Создаём новую сущность - загрузка файла обязательна. Редактируем - опциональна.
Пользователь изменил описание и не добавил файл - меняем описание. Изменил файл - меняем файл. Изменил описание и файл - меняем и то и то.
Один if и немного кода следить за файлами.
Пусть есть галерея изображений. Создаём новую сущность - загрузка файла обязательна. Редактируем - опциональна.
Пользователь изменил описание и не добавил файл - меняем описание. Изменил файл - меняем файл. Изменил описание и файл - меняем и то и то.
Один if и немного кода следить за файлами.
Re: Как пропустить пустое поле загрузки файла при редактиров
я решил эту проблему через создание $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 новичок, возможно, кто-то предложит вариант понативнее..
и соотв в методе 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: Как пропустить пустое поле загрузки файла при редактиров
всем спасибо, порешал через
1) прописание if логики в контроллере
2) в модели: 'file', 'required' и 'allowEmpty' => TRUE
1) прописание if логики в контроллере
2) в модели: 'file', 'required' и 'allowEmpty' => TRUE
Re: Как пропустить пустое поле загрузки файла при редактировании
Вот бы мне узнать как? Тоже столкнулся с такой проблемой по логике if в контроллере