无法访问codeigniter库中的功能

时间:2017-02-13 06:16:50

标签: php codeigniter oop object

PHP新手,oop&笨。 我的CI版本是3.1.2。

我正在尝试加载我构建的库,试图理解面向对象的原则。可能我错过了什么。

以下是我的图书馆。

<?php
class DPS {
    private $mode;

    public function __construct($params){
        //print_r($params);
        $this->mode = $params['mode'];
    }   

    public function get_url(){
        if($this->$mode == "TEST"){
            return "https://uat.paymentexpress.com/pxaccess/pxpay.aspx";
        } elseif($this->$mode == "LIVE"){
            return "https://sec.paymentexpress.com/pxaccess/pxpay.aspx";
        }
    }
}
?>

我正在尝试访问下面控制器中的get_url方法。

$params = [ 'mode' => 'TEST'];
$dps = $this->load->library('DPS',$params);     
echo $dps->get_url();

Codeigniter抛出以下错误消息。

  

致命错误:调用未定义的方法CI_Loader :: get_url()

作为一个新手,我可能会错过某种OO花哨的东西。我只是想不出来。非常感谢任何帮助。

提前谢谢

2 个答案:

答案 0 :(得分:1)

试试这个,

$this->load->library('dps',$params);     
echo $this->dps->get_url();

答案 1 :(得分:0)

始终像Codeigniter一样在

中加载库
$this->load->library('library_name');

使用

调用库的方法
$this->library_name->method_name();

所以试试这样......

将您的资料库保存在application/libraries Dps.php。然后

$params = [ 'mode' => 'TEST'];
$dps = $this->load->library('dps',$params);     
echo $this->dps->get_url();

并在您的DPS库中。纠正它

public function get_url(){
        if($this->mode == "TEST"){
            return "https://uat.paymentexpress.com/pxaccess/pxpay.aspx";
        } elseif($this->mode == "LIVE"){
            return "https://sec.paymentexpress.com/pxaccess/pxpay.aspx";
        }
    }