1

私はこのようなモデルを持っています

  function getlastval($prefix,$namatable, $namafield)
{
    $this->db->order_by($namafield,'DESC');
    $key = $this->db->get($namatable);

    if($key->num_rows()>0)
    {

        $lastval= $key->row()->Kode_Material_Jasa;
        $lastval = explode($prefix,$lastval);
        $lv = $lastval[1]; //line 18 refer to this line
        //return ltrim($lv, '0');
        }
    else
    {
        return 0;
    }
}

function gencode($prefix, $digit, $lastval)
{
    return $prefix . str_pad($lastval+1, $digit, '0', STR_PAD_LEFT);
}

以前のコントローラーで動作します

function addkategorimaterial()
{
    $this->load->model('m_admin');
    $lastval = $this->m_admin->getlastval('KKMJ','ms_kategori_material','Kode_Kategori_Material_Jasa');
    $data['nextval'] = $this->m_admin->gencode('KKMJ',3,$lastval); 
    $data['title'] = 'QB Tambah Kategori Material';
    $this->load->view('head',$data);
    $this->load->view('content/add_kategori_material');
}

戻りますKKMJ001が、他のコントローラーでは機能しません

     $this->load->model('m_admin');
$lastval = $this->m_admin->getlastval('KMJ','ms_material_jasa','Kode_Material_Jasa');
    $data['nextval'] = $this->m_admin->gencode('KMJ',3,$lastval); 
    $data['kkmj']='';
    $data['title'] = 'QB Tambah Material / Jasa';

    print_r($data['nextval']);
    print_r($lastval);

関数が返さKMJ001れ、エラーは次のようになります

ここに画像の説明を入力

どうすればこれを解決できますか?

4

1 に答える 1

0

explode()それはあなたが求めている機能ではないと思います。このexplode()関数は、文字列を区切り文字で配列に分割します。

(意味的に)選択した最初のパラメーターとして「プレフィックス」は必要ありません。最初のパラメーターとして区切り文字を取ります。

区切り文字として渡しKMMJているため、配列インデックス 1 を取得する唯一の方法は、返された文字列$key->row()->Kode_Material_Jasa;が次のようなものfooKMMJbarである場合array('foo', 'bar')です。

とにかく、あなたは と を呼び出しましたがgetlastval('KMJ'...)getlastval('KMMJ'...)それらは同じであってはなりませんか?

于 2012-10-15T02:45:47.917 に答える