2017-06-07 25 views
0

私は2つのコントローラ、Listes.phpとCampagnes.phpを持っています。私はCampagnesのメソッドでListesコントローラのメソッドを使いたいですか?それにいくつかのパラメータを渡すことは可能ですか?codeigniterのコントローラからパブリックメソッドを別のコントローラに使用する方法は?

私は私がここで見つけるいくつかの答えを試みたが、それらのどれも働いていないCodeIgniterの3

を使用しています。 campagnes.phpコントローラでも

私は、この:

include_once (dirname(__FILE__) . "/Listes.php"); 

    class Campagnes extends Listes { 

     public function listes_recap() 
     { 
     $result = parent::add($parameter1, $parameter2); 
     } 

     } 

とListes.phpコントローラで:あなたが助けているため、事前に

class Listes extends CI_Controller { 

    public function add($parameter1, $parameter2) 
    { 
     code here... 
    } 

    } 

感謝。

+0

は、あなたがの$ this - を試してみました良いプログラミング戦略ではありません>($パラメーター1、パラメーター2 $)を追加します。 ? – Ryan

答えて

2

必要な結果を得るには、いくつかの方法があります。しかし、あるコントローラを別のコントローラから呼び出すことは、行く方法ではありません。それを行う「最良の」方法は、両方のコントローラが使用する機能で実際に何が起こるかによって異なります。

最初の方法は、各コントローラがロードして使用する「ヘルパー」を作成することです。

ファイル:/application/helpers/list_add_helper.php

defined('BASEPATH') OR exit('No direct script access allowed'); 

if (! function_exists('add')) 
{ 
    function add($parameter1, $parameter2) 
    { 
     code here... 
    } 
} 

この

$this->load->helper('list_add'); 
$result = add($one, $two); 

第二の方法のように、コントローラにそれを使用して、カスタムライブラリを作成することです(クラス)

ファイル:/application/libraries/List_adder.php

class List_adder 
{ 
    public function add($parameter1, $parameter2) 
    { 
     //code here 
    } 
} 
任意のコントローラで使用

$this->load->library('list_adder'); 
$result = $this->list_adder->add($one, $two); 

カスタムライブラリ内のCIコードを使用する必要がある場合は、行うにはもう少し作業があります。それについてのすべてを読むHERE。別のコントローラからのコントローラメソッドを呼び出す

0

関連する問題