Form in main.php not shown

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?

You have to echo it.




  <?php echo LoginWidget::widget(); ?>



or




  <?= LoginWidget::widget(); ?>



thank you very much. now it’s shown as expected. =)