V Latte sa neprejaví FORM z presentru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Andurit
Člen | 131
+
-1
-

Ahojte,
Pokúšam sa použiť existujúce HTML v Latte ale mám dojem, akoby som vôbec nezavolal presenter.
Môže mi niekto poradiť čo robím zle?

Latte:

{form signInForm}
                    <div class="form-horizontal">
                    <div class="form-group">
                        <div class="col-md-12">
                            <input type="text" class="form-control" placeholder="E-mail"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-12">
                            <input type="password" class="form-control" placeholder="Password"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-6">
                            <a href="#" class="btn btn-link btn-block">Forgot your password?</a>
                        </div>
                        <div class="col-md-6">
                            <button class="btn btn-info btn-block">Log In</button>
                        </div>
                    </div>
                    </div>
                    {/form}

Pričom v presentri to vyzerá takto:

	protected function createComponentSignInForm()
	{
		$form = new Nette\Application\UI\Form;
		$form->addText('username', 'Username:')
			->setRequired('Please enter your username.');

		$form->addPassword('password', 'Password:')
			->setRequired('Please enter your password.');

		$form->addCheckbox('remember', 'Keep me signed in');

		$form->addSubmit('send', 'Sign in');

		// call method signInFormSucceeded() on success
		$form->onSuccess[] = array($this, 'signInFormSucceeded');
		return $form;
	}


	public function signInFormSucceeded($form, $values)
	{
		if ($values->remember) {
			$this->getUser()->setExpiration('14 days', FALSE);
		} else {
			$this->getUser()->setExpiration('20 minutes', TRUE);
		}

		try {
			$this->getUser()->login($values->username, $values->password);
			$this->redirect('Homepage:');

		} catch (Nette\Security\AuthenticationException $e) {
			$form->addError($e->getMessage());
		}
	}

EDIT:
FIXED: Chybu bola štandardne veľmi primitívna, chýbalo mi v html name=„username“ a name=„password“

Editoval Andurit (23. 5. 2015 16:34)

filipsedivy
Člen | 37
+
+1
-

Toto je ale špatně, prvkům musíte přiřadit dané parametry. Nette si již dané prvky vygeneruje sám.

{form signInForm}
	<div class="form-horizontal">
		<div class="form-group">
			<div class="col-md-12">
				{input username, class => 'form-control', placeholder => 'E-mail'}
 			</div>
		</div>
		<div class="form-group">
			<div class="col-md-12">
				{input password, class => 'form-control', placeholder => 'Password'}
			</div>
		</div>
		<div class="form-group">
			<div class="col-md-6">
				<a href="#" class="btn btn-link btn-block">Forgot your password?</a>
				{* Nezapomenout ne to že by to mělo být n:href="Presenter:action" *}
			</div>
			<div class="col-md-6">
				{input send, class => 'btn btn-info btn-block', value => 'Log In'}
			</div>
		</div>
	</div>
{/form}

Editoval filipsedivy (23. 5. 2015 17:21)

Unlink
Člen | 298
+
0
-

Poprípade použiť n:name atribúty a napojiť ten existujúci formulár na nette
https://doc.nette.org/cs/forms#…

Editoval Unlink (23. 5. 2015 17:50)