我刚刚在PHP中开始使用OOP,我尝试制作简单的登录表单,只需签入DB。但是当我加载页面时,它只是抛出我这个主题名称中的错误。知道我该如何解决这个问题吗?
<?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();
$user
是字符串值,您正在尝试使用不正确的函数调用函数。
$user
必须是包含登录方法的对象。