Hello,
i am not getting my widget to work.Can someone help me finding my mistake?
models/LoginForm.php
namespace app\models;
use Yii;
use yii\base\Model;
class LoginForm extends Model {
public $email;
public $password;
public function rules() {
return [
[['email', 'password'], 'required', 'message'=>''],
['email', 'email', 'message'=>'']
];
}
}
components/LoginWidget.php
namespace app\components;
use yii\base\Widget;
use yii\helpers\Html;
use app\models\LoginForm;
class LoginWidget extends Widget{
public function run(){
$model = new LoginForm();
return $this->render('login', [
'model' => $model
]);
}
}
components/views/login.php
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use app\models\LoginForm;
?>
<?php $form = ActiveForm::begin();
?>
<div class="form_zeile">
<?= $form->field($model, 'email')->textInput()->label('E-Mail'); ?>
<div class="clear"></div>
</div>
<div class="form_zeile">
<?= $form->field($model, 'password')->input('password')->label('Password'); ?>
<div class="clear"></div>
</div>
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
<?php ActiveForm::end(); ?>
views/layouts/main.php
<?php
/* @var $this \yii\web\View */
/* @var $content string */
use yii\helpers\Html;
use app\assets\AppAsset;
use app\components\LoginWidget;
AppAsset::register($this);
?>
...
<div class="login">
<?php LoginWidget::widget(); ?>
</div>
Is this the right way to show a form on all pages?