我试图将变量值从库函数传递给控制器,然后查看以获取输出。
我的图书馆代码:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* @description : Library to access MyOperator Public API
*/
Class My_Operator extends Admin_controller{
protected $developers_url = 'https://developers.myoperator.co/';
protected $token = 'XXXXXXXXX';
function __construct() {
}
public function run() {
# request for Logs
$url = $this->developers_url . 'search';
$fields = array("token" => $this->token);
$result = $this->_post_api($fields, $url);
$this->log("result");
$this->log($result);
}
private function _post_api(Array $fields, $url) {
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($ch);
} catch (Exception $e) {
return false;
}
$this->log("url");
$this->log($url);
$this->log("fields");
$this->log($fields);
curl_close($ch);
if ($result)
return $result;
else
return false;
}
private function log($message) {
print_r($message);
echo "\n";
}
}
从核心文件扩展extends Admin_controller
。
我的控制器代码是:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Myoperator extends Admin_controller
{
public function __construct()
{
parent::__construct();
//$this->load->model('myoperator_model');
}
public function index()
{
try {
$this->load->library('my_operator');
$data = $this->my_operator->run();
} catch (Exception $e) {
var_dump($e->getMessage());
}
$this->load->view('admin/myoperator/view', $data);
}
}
我的观看代码是:
<?php init_head(); ?>
<div id="wrapper">
<div>
<?php
echo $this->MY_Operator->run();
?>
</div>
</div>
<?php init_tail(); ?>
</body>
</html>
我没有获得所需的输出。 为此,我审阅了:
codeigniter data passing controller->library->view
Pass data from library to controller and then to view in CodeIgniter 2
passing parameter from view to library and return after process Code igniter
当我运行此代码时出现错误
此页面无法正常工作localhost目前无法处理此问题 请求。 HTTP ERROR 500
根据我的理解,如果服务器配置存在任何问题,则error
会出现,但同一应用程序中的其他页面运行完美。
已编辑: 以前的错误已经解决,一些链接问题,但是当我扩展该类时,会出现新的错误:
无法找到指定的类:Session.php
是否可以将核心文件类扩展到库类?
请帮我解决这个问题。任何形式的帮助表示赞赏。提前致谢。
答案 0 :(得分:2)
解决了我的问题,忘了在Admin_controller
控制器文件中包含Myoperator
文件。
这是我更新的代码:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH. 'core/Admin_controller.php'; //forgot this line of code
class Myoperator extends Admin_controller
{
public function __construct()
{
parent::__construct();
//$this->load->model('myoperator_model');
}
public function index()
{
try {
$this->load->library('my_operator');
$data = $this->my_operator->run();
} catch (Exception $e) {
var_dump($e->getMessage());
}
$this->load->view('admin/myoperator/view', $data);
}
}
答案 1 :(得分:1)
您无法从库中扩展core
类CI。但
您可以创建全新的库。
您可以扩展本机库。
您可以替换本机库。
了解更多信息,请参阅Codeigniter Library
在库中使用核心CI files
。使用
$CI =& get_instance();
然后使用$CI
加载所需的核心文件。