Нужно оформить отправку и сохранение файлов (изображений) на сервере с помощью метода POST (и PUT (или PATCH, есть вообще разница? (и если есть, то какая?)), но сначала хочу разобраться с POST).
Сейчас делаю так, но это не работает:
public function actions()
{
$actions = parent::actions();
unset($actions['delete'], $actions['put']);
unset($actions['create']);
return $actions;
}
public function actionCreate()
{
$model = new $this->modelClass;
$juxtapose = new Juxtapose();
if ($model->save()){
$juxtapose->loadImages($model->id);
}
return "error";
return new ActiveDataProvider ([
'query' => Product::find()->where(['id' => $model->id])
]);
}
...хотя до "error"
доходит.
Есть готовые методы в модели, которые обрабатывают файл и сохраняют на диск (loadImages)
, но как их принимать в контроллере?
public function loadImages($id)
{
$this->image = UploadedFile::getInstancesByName('image');
if (!$this->image || !$this->validate()) {
return false;
}
foreach ($this->image as $image) {
static::newImages($id, $image);
}
return true;
}
Решение:
поменял это getInstances($this, 'image');
на это getInstancesByName('image');
и все заработало.
так же переписал экшен :
public function actionCreate()
{
$model = new $this->modelClass;
$model->load(Yii::$app->getRequest()->getBodyParams(), '');
if ($model->save()) {
$model->loadImages();
}
return new ActiveDataProvider ([
'query' => Product::find()->where(['id' => $model->id])
]);
}
и метод класса, после перемещения в модель product
:
public function loadImages()
{
$this->image = UploadedFile::getInstancesByName('image');
if (!$this->image || !$this->validate()) {
return false;
}
foreach ($this->image as $image) {
Juxtapose::newImages($this->id, $image);
}
return true;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Упал сайтНа главной и на стороне админки "Error establishing a database connection" В wp-config
В char WindowText[4096] хранится заголовок окна (не окна с сообщением), полученный при помощи GetWindowTextКогда я пытаюсь сделать так:
Подскажите (что-то не могу найти, хотя точно помню, что такая элементарная вещь в C++ была) как вернуть не переменную, а ее тип, который я дальше...