2016-06-27 17 views
1

何か問題があります。私はコントローラからモデルに変数を渡そうとしていますが、私は常にモデル上でNULL値を取得します。誰でも自分のコードに何が間違っているのかを指摘できますか?私はこれを実行するとcodeigniterでコントローラからモデルに変数を渡すときにNull値を取得する

CONTROLLER

public function test() 
{ 
    $this->load->model('model_register'); 

    //ID Creation to be inserted into the database 
    $country_prefix = $this->model_register->countryprefix(); 
    $org_prefix = $this->model_register->organizationprefix(); 
    $insertion = $this->model_register->insertion(); 

    $userid_base = $country_prefix['0']['c_code'].$org_prefix['0']['id']; 

    $basenum = "000000000"; 
    $base_length = strlen($basenum); 
    $id_length = strlen($org_prefix['0']['id']); 

    $computation = $base_length - $id_length; 

    $id_base_array = array(); 

    for ($i = 0; $i < $computation; $i++) 
    { 
     array_push($id_base_array, "0"); 
    } 

    $id_base = implode("",$id_base_array); 

    $userid_admin = $country_prefix['0']['c_code']."ADM".$id_base.$org_prefix['0']['id']; 

    //Insert Data 

    //data-mix 
    $data['userid'] = $userid_base; 
    $data['baselength'] = strlen($basenum); 
    $data['id_length'] = strlen($org_prefix['0']['id']); 
    $data['result'] = $computation; 
    $data['id_base'] = implode("",$id_base_array); 
    $data['userid_admin'] = $userid_admin; 
    $data['insertion'] = $insertion; 

    $insertion = $this->model_register->insertion($data['userid_admin']); 

} 

モデル

public function insertion($x) 
{ 
    $value = $x; 

    $data = array(
     'testid' => $value, 
    ); 

    $this->db->insert('test',$data); 

    return $value; 
} 

は、私は次の2つの異なる '引数' で二回の挿入と呼ば

INSERT INTO `test` (`testid`) VALUES (NULL) 
+0

のように、モデルファイルにパラメータとしてデフォルトNULL値を渡すことです'form controller' $ this-> model_register-> insertion(); ' – Saty

+1

あなたは何も渡されていないときに** insertion()**を2回呼びました。 $ this => model_register-> insertion(); 'というコードでこれをチェックアウトすると、その時点でエラーが発生します。 –

+0

私は何か試してみましたが、そこに到着しているようです。最初に私はコントローラーで$ insertion = $ this-> model_register-> insertion($ data);と宣言しました。 私のモデルで私はこれを持っています。 $ value = $ x ['userid_admin']; 私はprint_r($ value);私が渡している値は表示されますが、$ data配列ではまだnullです。 –

答えて

0

を取得します。最初の$insertion = $this->model_register->insertion();は、パラメータなしで呼び出され、第二は$insertion = $this->model_register->insertion($data['userid_admin']);

この条件はMethod Overloading、同じメソッドが作成される条件が、異なるパラメータで落ちることができ、このような2つの異なる機能を実行することができ、パラメータと呼ばれました。

あなたはどちらの場合も同じ機能を使用したい場合は、しかし、最高の修正は、 `$ xを渡す必要があり、この

public function insertion($x = NULL) { 
    // Function code appears here 
} 
関連する問題