我刚从 PHP 中的 OOP 开始,我尝试制作简单的登录表单,只需签入数据库。但是,当我加载页面时,它只会以该主题的名义向我抛出错误。知道我该如何解决这个问题吗?
<?php
use Nette\Application\UI;
use Nette\Database\Connection;
/**
* Homepage presenter.
*/
class HomepagePresenter extends BasePresenter
{
protected function createComponentSign()
{
$form = new UI\Form;
$form->addText('name', 'Jméno:');
$form->addPassword('password', 'Heslo:', 30);
$form->addCheckbox('persistent', 'Pamatovat si mě na tomto počítači');
$form->addSubmit('login', 'Přihlásit se');
$form->onSuccess[] = callback($this, 'signSubmited');
return $form;
}
// volá se po úspěšném odeslání formuláře
public function signSubmited(UI\Form $form)
{
try {
$user = $form->getValues()->name;
$values = $form->getValues();
if ($values ->persistent) {
$user->setExpiration('+30 days',FALSE);
}
$user->login($values->username, $values->password);
$this->flashMessage("Byl jsi úspěšně přihlášen jako: $values[name]");
//this->redirect('Homepage:');
} catch (Nette\Security\AuthenticationException $e) {
$form->addError('Neplatné uživatelské jméno nebo heslo.');
}
}
public function actionOut()
{
$this->getUser()->logout();
$this->flashMessage('Bol si odhlasený.');
$this->redirect('in');
}
}