Model:
namespace app\models; class TestModel extends \yii\base\Model { public $myImage; public function rules() { return [ ['myImage', 'image', ], ]; } } Representation:
use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this object yii\web\View */ /* @var $form object yii\widgets\ActiveForm */ /* @var $model object app\models\TestModel */ $form = ActiveForm::begin(['enableClientValidation' => false, ]); echo $form->field($model, 'myImage')->fileInput(); echo Html::submitButton(); ActiveForm::end(); I have disabled client side validation:
'enableClientValidation' => false, to check how the validator works on the server, since everything works fine on the client side; however, the validator does not work on the server, that is, skips any files? ...
Controller:
namespace app\controllers; use Yii; use yii\web\UploadedFile; use app\models\TestModel; class TestController extends \yii\web\Controller { public function actionIndex() { $model = new TestModel(); if ( $model->load(Yii::$app->request->post()) && $model->validate() ) { die('Model is valid!'); } return $this->render('index', [ 'model' => $model, ]); } }