2016-05-01 63 views
-1

我通過URL將視圖中的參數傳遞給控制器​​。現在我想將它從控制器發送到模型,以便我可以使用它從表中選擇數據。這裏是我的代碼:如何將數據從控制器傳遞到codeigniter中的模型

控制器:

function view(){ 
    if(isset($_GET['r'])) { 
     $rank = $_GET['r']; 
    } 

    $rank=$this->uri->segment($rank); 
    $this->load->model('names_rank'); 
    $data=$this->names_rank->get_names($rank); 
    print_r($rank); 
} 

型號:

function get_names($rank){ 
    $this->db->select('u.*,v.*'); 
    $this->db->from('unit_member u, Vyeo v'); 
    $this->db->where('v.fno = u.fno'); 
    $this->db->where('u.present = ""'); 
    $this->db->where('v.rank', $rank); 
    $this->db->where('v.date_of_end="0000-00-00"'); 
    $query = $this->db->get(); 
    return $query->result_array(); 
} 

這就是結果:

一個PHP錯誤遇到嚴重性:警告消息:缺少 參數1爲Names_rank :: get_names(),在 中調用C:\ xampp \ htdocs \ unit \ application \控制器\上線32和 names.php定義

+0

如果沒有設置$ _GET ['r']',那麼'$ rank'將會是未定義的,所以如果沒有設置它,或者將它設置爲'$ rank'到某個默認值 – winhowes

+0

只是一個音符在CI3版本中,文件和類應該只有第一個字母大寫字母names.php到Names.php – user4419336

+0

它的一致性準則比嚴格執行(在這個階段無論如何)。我嚴格遵循這一點,同樣命名我的模型Modelname_model.php也 –

回答

1

這將工作發送給模型,但你的代碼是不理解我,你在IF設置之後重新聲明變量?你是否試圖print_r()模型的輸出?

我認爲你正試圖達到這個目的?

function view() { 

if(isset($_GET['r'])) { 

$rank = $_GET['r']; 
}else{ 

$rank = $this->uri->segment($rank); 
} 

$this->load->model('names_rank'); 

$data = $this->names_rank->get_names($rank); 
print_r($data); 
} 
0

您可以通過一個參數到模型。首先,如果您未在自動加載中啓用它,則必須在您的控制器中調用您的模型。

模型:

<?php 
class AwesomeModel extends CI_Model 
{ 
    publif function do_work($param, $anotherParam) 
    { 
    //code here 
    } 
} 

Then your controller: 

<?php 
class AwesomeController extends CI_Controller 
{ 
    public function __construct() 
    { 
     /* 
     * load in constructor so not need to recall every time you want use it 
     * second parameter is model renaming (optional) 
     */ 
     $this->load->model('AwesomeModel', 'awe');            
    } 

    public function pass_data() 
    { 
     $this->awe->do_work($param1, $param2); 
    } 
?> 

這就是所有。

+0

他已經在控制器方法視圖()中在他使用它之前稱爲模型,這是可以接受的......那不是問題 –

+0

即時通訊它作爲一個問題:) –

+0

在CI3版本中,文件和類應該只有第一個字母大寫,根據用戶指南http://www.codeigniter.com/user_guide/general/controllers.html#let-s-try - 你好,世界和模型http://www.codeigniter.com/user_guide/general/models.html#anatomy-of-a-model – user4419336

相關問題