呼吁在零误差的成员函数笨(Call to a member function on null err

2019-10-23 03:43发布

请dont`t问我为什么有一个以上的控制器:这是我的老师想要什么。 我有3个控制器:Api.php,Token.phpApikey.php,其中Api.php是“主”之一。

问题 :当我进入的网址 : HTTP://localhost/revolution/index.php/api/registerUser/first_name/12First

它似乎有与加载从AP控制器令牌控制器问题。

错误:致命错误:调用到空的成员函数的generateToken()

我能做什么?

API控制器:Api.php

class api extends CI_Controller {


    public function index()
    {

        parent::__construct();
        $this->load->library("../controllers/Apikey.php");
        $this->load->library("../controllers/Token.php");

    }

    public function registerUser ($username,$parola)
    {
        if ($this->isValidUserName($username) && $this->isValidPass($parola)) {
            $this->load->library("../controllers/Token");
            $id = $this->ApiModel->insertCredentials($username, md5($parola));
            $this->Token->generateToken($id);
            $this->ApiKey->generateApiKey($id);

            $data['registered'] = 1;
            $this->load->view('api', $data);
        }
    }
}

控制器Token.php

 public function existsToken($token)
    {
        $arrayTokens = $this->ApiModel->getAllTokens();

        if (in_array($token, $arrayTokens))
            return existsToken(sha1($this->randomString())); //$this->isValidToken(sha1($this->randomString()));

        return $token;
    }

    public function randomString() {
        return intval(993432422 % rand());
    }

   public function generateToken($id_user)
    {
        $token = $this->existsToken(sha1($this->randomString()));       
        $date = $this->generateExpDate();
        $result = $this->ApiModel->insertToken($token, $date, $id_user);    
    }

Answer 1:

作为codeignetor遵循MVC模式,你不能调用其他控制器的控制功能。 然而,你可以通过使用功能帮助做到这一点,并呼吁从功能辅助功能中的任何控制器。



文章来源: Call to a member function on null error CodeIgniter