Как сохранить запись в бд?

public function actionCreate() {
        $model = new MyGallery;
        if(!empty($_FILES)){
            move_uploaded_file($_FILES['file']['tmp_name'],
            Yii::app()->request->baseUrl . 'images/upload/' . '13' . $_FILES['file']['name']);
            $model->img_url = $_FILES['file']['name'];
        };
        if (isset($_POST['MyGallery'])) {
            $model->attributes = $_POST['MyGallery'];
//            $model->img_url = $_FILES['file']['name'];
            if ($model->save())
                $this->redirect(array('view', 'id' => $model->id));
        }
        $this->render('create', array(
            'model' => $model,
        ));
    }

Есть контроллер который должен сохранять записи в бд, но не сохраняет название картинки и за того выходит ошибка: Необходимо заполнить поле «Путь к картинки». Сам файл загружается нормально, а записывать его не хочет в бд хотя на другие поля он не жалуется.
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 2
@eldar_web
Переставь, то есть, напиши так:
public function actionCreate() {
        $model = new MyGallery;
      
        if (isset($_POST['MyGallery'])) {
            $model->attributes = $_POST['MyGallery'];
if(!empty($_FILES)){
            move_uploaded_file($_FILES['file']['tmp_name'],
            Yii::app()->request->baseUrl . 'images/upload/' . '13' . $_FILES['file']['name']);
            $model->img_url = $_FILES['file']['name'];
        };
            if ($model->save())
                $this->redirect(array('view', 'id' => $model->id));
        }

  
        $this->render('create', array(
            'model' => $model,
        ));
    }
Ответ написан
@arab789
Можно просто так сохранить:
$model->updateByPk($id, array('img_url'=>$_FILES['file']['name']));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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