des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Yii 1.* загрузка файлов?

если взять за основу эту инструкцию yiiframework.ru/doc/cookbook/ru/form.file.upload
то поле image - это поле в таблице обязательно?
при выборе фото и нажатии создать получаю
Необходимо исправить следующие ошибки:

Необходимо заполнить поле «Image».

в общем все вроде получилось с толстой моделью yiiframework.ru/doc/cookbook/ru/form.file.upload.f...
но вот косяк
public function beforeSave()
    {
        if (!parent::beforeSave())
            return false;
        if (CUploadedFile::getInstance($this, 'document') != null)
        {
            if (($this->scenario == 'insert' || $this->scenario == 'update') &&
                    ($document = CUploadedFile::getInstance($this, 'document'))
            )
            {
                $this->deleteDocument(); // старый документ удалим, потому что загружаем новый

                $this->document = $document;
                $this->document->saveAs(
                        Yii::getPathOfAlias('webroot.media') . DIRECTORY_SEPARATOR . $this->document);
            }
        }
        return true;
    }

тварь удаляет фотку в любом результате при обновлении.
$document = CUploadedFile::getInstance($this, 'document') ей разве не указ? как указать чтобы обновлялась фотка (читай - удалялась старая и загружалась новая). только при обновлении через загрузку файла. ну и еще конечно косяк что сохраняет не смотря что файл с таким именем уже есть (тут правда как вариант можно выставить уникальное имя файла, или самому генерить на основании ид, так что не совсем критично)
  • Вопрос задан
  • 742 просмотра
Решения вопроса 1
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
толстая модель оказалась нежизнеспособной
реализовал так des1roer.blogspot.ru/2015/07/yii.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
По умолчанию оно обязательное. Нужно в модели в валидаторе file указать allowEmpty=>true
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы