2017-03-15 10 views
4

ライブラリ関数の変数値をコントローラに渡してから出力を取得しようとしています。私のライブラリのコードそのために変数値をライブラリからコントローラに渡してからCI 3.0で表示する

<?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

を、私はこのerrorが来る私の理解あたりとして、私はエラー

This page isn’t working localhost is currently unable to handle this request. HTTP ERROR 500

を持ってこのコードを実行しているときサーバー構成に問題がある場合は、bu同じアプリケーションの他のページは完全に実行されます。

編集: 前のエラーは、いくつかのリンクの問題を解決し、私はそのクラスを拡張していたときに、新しいエラーを与える:

Unable to locate the specified class: Session.php

は、それがライブラリクラスにコアファイルのクラスを拡張することが可能ですか?

この問題を解決するのを手伝ってください。どんな種類の助けにも感謝します。前もって感謝します。

+0

'run'関数から結果を戻してください:ここ

は私の更新されたコードです。 –

+0

ご迷惑をおかけして申し訳ありませんが、問題を解決しました。しかし、新しいエラーが発生しました。指定されたクラス: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

より

$CI =& get_instance(); 

を使用してlibrary.Create CIグローバルインスタンスにコアCI filesを使用するCodeigniter Library

を見るためにあなたはlibrary.But

You can create entirely new libraries.

You can extend native libraries.

You can replace native libraries.

からCIのcoreクラスを拡張することはできません次に、$CIを使用して必要なコアファイルをロードします。

+0

しかし、私はそのコードを削除した 'Admin_controller'を延長するとエラーが発生します。 –

+0

そのコードを置くと、次のようなエラーが発生します: .php –

+0

は、 'print_r($ data)'のビューではなく、ライブラリの関数を呼び出しています。出力は何ですか? –

関連する問題