繁体   English   中英

致命错误在非对象PHP上调用成员函数login()

[英]Fatal Error Call to a member function login() on a non-object PHP

我只是从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();

$user是字符串值,您正在尝试使用不正确的函数。

$user必须是包含登录方法的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM