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
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
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
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)