2016-01-21 60 views
1

非常感谢回答my question before笨失败调用功能一个控制器内

所以,我有一个问题在我笨,它仍然在同一个项目,只是在我的数据库统计数据行。

我想要做的是在Controller中创建一个函数,然后在View中调用该函数。

因此,这里是我的原代码:

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

class Dash_control extends CI_Controller { 

    public function __construct() 
     { 
      parent::__construct(); 
      $this->load->database(); 
      $this->load->model('dash_model'); 
     } 



    public function index() 
    { 
     $data['cashtotal']=$this->dash_model->totalCash(); 
     $data['approvedtocash']=$this->dash_model->cashapproved(); 
     $data['rejectedtocash']=$this->dash_model->cashrejected(); 

     $this->load->view('dashboard',$data); 
    } 

} 

,然后这里是我的视图代码:

<thead> 
<tr> 
<th>Bank Name</th> 
<th>Total Transaction</th> 
<th>Cash Approved</th> 
<th>Cash Rejected</th> 
</tr> 
</thead> 
<tbody> 
<tr class="warning"> 
<td>Awesome Bank</td> 
<td><?php echo $cashtotal; ?></td> 
<td><?php echo $approvedtocash; ?></td> 
<td><?php echo $rejectedtocash; ?></td> 
</tr> 
</tbody>  

通过上面的代码,一切工作正常。直到我修改了代码像下面这一个(使用像上面一样查看文件):

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

class Dash_control extends CI_Controller { 

    public function __construct() 
     { 
      parent::__construct(); 
      $this->load->database(); 
      $this->load->model('dash_model'); 
     } 



    public function index() 
    { 

     $this->load->view('dashboard'); 
    } 

    public function anotherfunction() 
    { 
     $data['cashtotal']=$this->dash_model->totalCash(); 
     $data['approvedtocash']=$this->dash_model->cashapproved(); 
     $data['rejectedtocash']=$this->dash_model->cashrejected(); 

     $this->load->view('dashboard',$data); 
    } 

} 

后,我得到了我的浏览器这个错误:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: cashtotal 

Filename: views/dashboard.php 

Line Number: 147 

Backtrace: 

File: C:\xampp\htdocs\application\views\dashboard.php 
Line: 147 
Function: _error_handler 

File: C:\xampp\htdocs\application\controllers\dash_control.php 
Line: 18 
Function: view 

File: C:\xampp\htdocs\index.php 
Line: 292 
Function: require_once 

我做了什么错?有什么我失踪? 所以我不能在我的控制器内创建多个功能? 谢谢你。

UPDATE

我跟着SATY指南和它的工作。非常感谢! 由于这是一个表格,我想添加其他功能,所以我将其添加像这样:

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

class Dash_control extends CI_Controller { 

    public function __construct() 
     { 
      parent::__construct(); 
      $this->load->database(); 
      $this->load->model('dash_model'); 
     } 



    public function index() 
    { 
     $this->CashTransSum(); 
     $this->PayTransSum(); 
    } 

    public function CashTransSum() 
    { 
     $data['cashtotal']=$this->dash_model->totalCash(); 
     $data['approvedcash']=$this->dash_model->cashapproved(); 
     $data['rejectedcash']=$this->dash_model->cashrejected(); 

     $this->load->view('dashboard',$data); 
    } 

    public function PayTransSum() 
    { 
     $data['paytotal']=$this->dash_model->totalPay(); 
     $data['approvedpay']=$this->dash_model->payapproved(); 
     $data['acqrejectedpay']=$this->dash_model->payrejected(); 

     $this->load->view('dashboard',$data); 
    } 

} 

然后我得到了同样的错误:

Severity: Notice 

Message: Undefined variable: paytotal 

Filename: views/dashboard.php 

Line Number: 156 

Backtrace: 

File: C:\xampp\htdocs\application\views\dashboard.php 
Line: 156 
Function: _error_handler 

File: C:\xampp\htdocs\application\controllers\dash_control.php 
Line: 29 
Function: view 

File: C:\xampp\htdocs\application\controllers\dash_control.php 
Line: 17 
Function: CashTransSum 

File: C:\xampp\htdocs\index.php 
Line: 292 
Function: require_once 

这里说我需要称之为一次......哪一个?我把代码弄错了吗?

+0

你还在打索引吗?如果是这样,那么错误是正确的。如果你仍然想要索引方法,只需简单地在那里包含声明。 – Kisaragi

回答

3

你需要调用anotherfunction()index函数内部作为

public function index() 
    { 

     $this->anotherfunction();// call your function 
    } 
public function anotherfunction() 
    { 
     $data['cashtotal']=$this->dash_model->totalCash(); 
     $data['approvedtocash']=$this->dash_model->cashapproved(); 
     $data['rejectedtocash']=$this->dash_model->cashrejected(); 

     $this->load->view('dashboard',$data); 
    } 
1

错误你有,这是完全正常的,你需要填写$data阵列的所有变量,尝试了这一点:

protected $data; 

public function index() 
{ 
    $this->CashTransSum(); 
    $this->PayTransSum(); 

    $this->load->view('dashboard', $this->data); 
} 

public function CashTransSum() 
{ 
    $this->data['cashtotal']=$this->dash_model->totalCash(); 
    $this->data['approvedcash']=$this->dash_model->cashapproved(); 
    $this->data['rejectedcash']=$this->dash_model->cashrejected(); 
} 

public function PayTransSum() 
{ 
    $this->data['paytotal']=$this->dash_model->totalPay(); 
    $this->data['approvedpay']=$this->dash_model->payapproved(); 
    $this->data['acqrejectedpay']=$this->dash_model->payrejected(); 
} 
相关问题