我只是从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');
}
}
您的try / catch块中有以下代码行
$user = $form->getValues()->name;
它为$ user分配了一个字符串值,我假设您需要以下分配
$user = $this->getUser();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句