2016-05-01 10 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(); 
} 

これが結果です:警告メッセージ::行方不明 A PHPエラーが重大度遭遇した

Names_rank :: get_names()の引数1は、 で呼び出されます。C:\ xampp \ htdocs \ unit \ application \コントローラ\ライン32上のNames.phpにと が定義されて

+0

$ _GET ['r'] 'が設定されていないと' $ rank'は未定義になりますので、設定されていないか、 '$ rank'をデフォルト値の – winhowes

+0

に設定すると返信します。 CI3のバージョンでは、ファイルとクラスはNames.php – user4419336

+0

に最初の文字大文字のみのnames.phpを持っていなければなりません(厳密にはこの段階で)。私はこれに厳密に従っています。モデル名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

im noy putそれは問題として: –

+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-モデル – user4419336