2016-11-27 6 views
1

私はcodeigniterで階層MVCモデルを使用しています。私はテンプレートと呼ばれるコントローラを作成し、その中にsample_templateという関数を作ります。次に、sample_template_vというビューが作成され、テンプレートコントローラ内で呼び出されます。 Adminという別のコントローラを作成し、Template-> sample_template($ data)と呼んでいます。その2つのfuntions内。私のコードは次のように終わっています:メンバー関数を呼び出すnullでsample_template()を呼び出す

MY_Controlle.php

<?php 

class MY_Controller extends MX_Controller 

{ 

    function __construct() 
    { 
     parent::__construct(); 

     $this->load->module('Template'); 
    } 
} 

Admin.php

<?php 

class Admin extends MY_Controller 

{ 

    function __construct() 

    { 
     parent::__construct(); 
    } 

    function index() 
    { 

     $data['content_view'] = 'admin/admin_v'; 
     $this->Template->sample_template($data); 

    } 

    function about() 
    { 
     $data['content_view'] = 'admin/about_v'; 
     $this->Template->sample_template($data); 
    } 

} 

Template.php

<?php 

class Template extends MY_Controller 

{ 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function sample_template($data = NULL) 
    { 
     $this->load->view('Template/sample_template_v', $data); 
    } 
} 

sample_template_v.phpファイル---->

<h5>This is the main Template.</h5> 


<?php $this->load->view($content_view); ?> 

エラー:

enter image description here

答えて

0

あなたがオブジェクトからメソッドを呼び出したい場合は、オブジェクトをinitiazeしてからメソッドを呼び出す必要があります。あなたのケースでは$this->template is setを必ず確認してください。

$this->template = new Template(); 

    $this->template->sample_template($data); 
+0

ありがとうございました。私はそれを解決することができます。私は、admin.phpで$ this-> template-> sample_template($ data)を使いました。 –

関連する問題