Пытаюсь разобраться с работой загрузки файла в yii2 по мануалу
https://github.com/yiisoft/yii2/blob/master/docs/g... но файл не грузится,вот модель:
<?php
namespace common\models;
use Yii;
use yii\base\Model;
use yii\web\UploadedFile;
/**
* This is the model class for table "good".
*
* @property integer $id
* @property integer $catalog_id
* @property string $gtitle
* @property string $gdescription
*
* @property Catalog $catalog
*/
class Good extends \yii\db\ActiveRecord
{
/**
* @var UploadedFile
*/
public $imageFile;
/**
* @inheritdoc
*/
public static function tableName()
{
return 'good';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg, jpeg'],
[['catalog_id', 'gtitle'], 'required'],
[['catalog_id', 'promo'], 'integer'],
[['gdescription', 'imageFile'], 'string'],
[['gtitle', 'imageFile'], 'string', 'max' => 255],
[['gtitle'], 'unique'],
[['catalog_id'], 'exist', 'skipOnError' => true, 'targetClass' => Catalog::className(), 'targetAttribute' => ['catalog_id' => 'id']],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
//'catalog.ctitle' => 'Каталог',
'catalog_id' =>'Альбом',
'gtitle' => 'Заголовок',
'gdescription' => 'Описание',
'imageFile' => 'Изображение',
'promo' => 'Видимость на главной',
];
}
public function upload()
{
if ($this->validate()) {
$this->imageFile->saveAs(Yii::getAlias('@uploads/images/') . $this->imageFile->baseName . '.' . $this->imageFile->extension);
return true;
} else {
return false;
}
}
/**
* @return \yii\db\ActiveQuery
*/
public function getCatalog()
{
return $this->hasOne(Catalog::className(), ['id' => 'catalog_id']);
}
}
А вот экшн для загрузки
public function actionCreate()
{
$model = new Good();
if (Yii::$app->request->isPost) {
$model->imageFile = UploadedFile::getInstance($model, 'imageFile');
if($model->upload()) {
return $this->redirect(['view', 'id' => $model->id]);
} else{
return $this->redirect(['views', 'id' => $model->id]);
}
}
return $this->render('create', ['model' => $model,]);
}
Резульат работы такой, что почему-то условие if($model->upload()) оказывается ложным и страница редиректится на страницу views. Хотя вроде все по мануалу, но не могу понять, что тут не так. Помогите пожалуйста разобраться, где тут ошибка.