Jak mogę wyświetlić formularz logowania w nawigacji nagłówka na każdej stronie za pomocą Yii2?
Próbowałem użyć:
$form = ActiveForm::begin(..);
$form->field(..);
ActiveForm:end();
Ale muszę dodać model LoginForm dla każdej strony w kontrolerze witryny.
Czy istnieje lepszy sposób na zrobienie tego?
Dzięki.
Odpowiedzi:
2 dla odpowiedzi № 11- Musisz umieścić swój kod w widgecie
2- w widoku widżetu musisz zdefiniować absolutną ścieżkę akcji, lubię to :
<?php $form = $this->beginWidget("CActiveForm", array(
"id" => "contact-form",
"action" => Yii::app()->createUrl("//index.php/site/contact"),
"enableAjaxValidation" => true,
"enableClientValidation" => false,
"clientOptions" => array(
"validateOnSubmit" => true,
),
"htmlOptions" => array("class" => "form-horizontal", "role" => "form"),
));
?>
W Yii2:
// In Yii 2
$form = ActiveForm::begin([
"method" => "get",
"action" => Url::to(["//index.php/site/contact"]),
]);
// In Yii 1.x
$form = $this->beginWidget("CActiveForm", [
"method" => "get",
"action" => $this->createUrl("//index.php/site/contact"),
]);
Powiązany link: Kroki, aby utworzyć widget na Yii?