Reputation: 51
I write
[['section'], 'required', 'message' => '<span><img src="http://troll-face.ru/static/mememaker/c/6/19423-gaechka.jpg">Вы не выбрали раздел!</span>']
In rules, but it outputs as text, not image. Is it impossible to output images? Thank you.
Upvotes: 1
Views: 204
Reputation: 11839
Here is working example for advanced template with client and server sides validation
/frontend/assets/AppAsset.php
<?php
namespace frontend\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
public $depends = [
'yii\bootstrap\BootstrapAsset',
];
}
/frontend/controllers/DummyController.php
<?php
namespace frontend\controllers;
use frontend\models\Dummy;
use yii\web\Controller;
class DummyController extends Controller
{
public function actionIndex()
{
$this->layout = 'dummy';
$model = new Dummy();
if ($model->load(\Yii::$app->getRequest()->post()) === true) {
$model->validate();
}
return $this->render('index', compact('model'));
}
}
/frontend/models/Dummy.php
<?php
namespace frontend\models;
use yii\base\Model;
class Dummy extends Model
{
public $name;
public function rules()
{
return [
[['name'], 'required', 'message' => '
<span>
<img src="http://troll-face.ru/static/mememaker/c/6/19423-gaechka.jpg">
Вы не выбрали раздел!
</span>
'
],
];
}
public function attributeLabels()
{
return [
'name' => 'Name',
];
}
}
/frontend/views/dummy/index.php
<?php
/**
* @var $this yii\web\View
* @var $form yii\widgets\ActiveForm
* @var $model frontend\models\Dummy
*/
use yii\widgets\ActiveForm;
use yii\helpers\Html;
$form = ActiveForm::begin();
echo $form
->field($model, 'name', [
'errorOptions' => [
'tag' => 'div',
'class' => 'help-block',
'encode' => false
]
]);
echo Html::submitButton('Submit');
ActiveForm::end();
/frontend/views/layouts/dummy.php
<?php
/**
* @var $this \yii\web\View
* @var $content string
*/
?>
<?php
use frontend\assets\AppAsset;
use yii\helpers\Html;
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?php echo Html::encode(Yii::$app->language) ?>">
<head>
<?php
$this->head();
echo Html::tag('title', sprintf('%s, %s', Yii::$app->id, Html::encode($this->title)));
?>
</head>
<body>
<?php
$this->beginBody();
echo $content;
$this->endBody();
?>
</body>
</html>
<?php $this->endPage() ?>
Upvotes: 1