Я использую виджет kartik yii2-widget-fileinput. Во вью вставил следующий код:
<?= $form->field($model, 'photo')->widget(FileInput::classname(),['options' => ['accept' => '@yii/files/*'],'pluginOptions' => ['uploadUrl' => Url::to(['/candidate/create']),],]); ?>
Контроллер:
$modelFileWidget = new \frontend\models\forms\UploadForm();
$modelFileWidget->photo = UploadedFile::getInstance($modelFileWidget, 'photo');
Yii::$app->response->format = Response::FORMAT_JSON;
if ($modelFileWidget->upload()) {
return ['error' => null];
}
return $this->render('create',[
'model' => $form,
'modelFileWidget'=> $modelFileWidget,
'cities' => ArrayHelper::map($this->cityService->getAll(),'id','name'),
'skills' => ArrayHelper::map($this->skillService->getAll(),'id','name'),
]);
Модель:
class UploadForm {
/**
* @var UploadedFile
*/
public $photo;
public function rules()
{
return [
[['photo'], 'file', 'skipOnEmpty' => true, 'extensions' => ['jpg', 'png']],
];
}
public function upload()
{
if ($this->validate()) {
$this->photo->saveAs(Yii::getAlias('@app').'/web/img/' . $this->photo->baseName . '.' . $this->photo->extension);
return true;
} else {
return false;
}
}
}
В результате загрузки файла получаю следующее сообщение об ошибке:
Exception 'Error' with message 'Call to undefined method frontend\models\forms\UploadForm::formName()'
Я нашел решение похожего вопроса, но так и не понял как его применить work with uploaded file in yii2 Заранее спасибо за ответы!
В сообщении об ошибке у вас написано, что не найден метод formName()
, который в свою очередь находится в классе yii\base\Model
. Вероятно вы забыли отнаследоваться от этого родительского класса в UploadForm
.
namespace frontend\models\forms;
use yii\base\Model;
class UploadForm extends Model
{
//..
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Код php для добавления значений таблице в mysqlНе работает добавление новых значений, запрос идет, а в результате ничего не добавляется
У меня есть событие, которое по клику меняет стили для блоковНо когда добавил php , то при переходах по ссылкам страница перезагружается и все...