在codeigniter中显示我的模型值

时间:2015-07-24 22:44:09

标签: php codeigniter

我是codeigniter的新手,并且在我的功能上遇到了一些麻烦

这是我的模特

public function kode_unik(){
$q = $this->db->query("select MAX(RIGHT(id_obat,5)) as code_max from obat");
        $code = "";
        if($q->num_rows()>0){
            foreach($q->result() as $cd){
                $tmp = ((int)$cd->code_max)+1;
                $hitung = strlen($tmp);
                if ($hitung == 1 ){
                    $a = "0000".$tmp;
                } elseif ($hitung == 2) {
                    $a = "000".$tmp;
                }elseif ($hitung == 3) {
                    $a = "00".$tmp;
                }elseif ($hitung == 4) {
                    $a = "0".$tmp;
                }else{
                    $a = $tmp;
                }

                $code = sprintf("%s", $a);
            }
        }else{
            $code = "0001";
        }
        $kodenyami = "E".$code;
        return $kodenyami;
    }

然后我想得到我的模型的结果在我的视图中显示。 这是我的控制器

public function add_data()
    {   
        $this->load->helper( array('fungsidate', 'rupiah', 'url') );
        $this->load->model('obat');
        $this->load->database();
        $data['a'] = $this->obat->tampil_data();
        $data['b'] = $this->obat->kode_unik();
        $componen = array(
           "header" => $this->load->view("admin/header", array(), true),
           "sidebar" => $this->load->view("admin/sidebar", array(), true), 
           "content" => $this->load->view("admin/add_obat", array("data" => $data), true)
          );
        $this->load->view('admin/index', $componen);
    }

我的观点就在这里。

                  <i class="fa fa-medkit fa-5x"></i></div>
               <div class="col-xs-9 text-right">
     line20->  <div class="huge"><?php echo $b; ?></div>
         <div>ID Obat</div>

代码给我一个错误消息:未定义的变量:b

只是不知道如何将我的模型$ kode_unik的价值放入我的视图中..

谢谢

1 个答案:

答案 0 :(得分:0)

$ data已经是一个数组。也许是这样的:

“content”=&gt; $ this-&gt; load-&gt; view(“admin / add_obat”,$ data,TRUE)

CodeIgniter会在$ data中提取密钥,这样您就可以在视图中将它们用作$ b

BTW而不是传递array()作为load-&gt;视图的参数,你可以使用NULL

P.S如果将最后一个参数设置为TRUE,则会将该视图的填充内容作为字符串返回(在这种情况下为HTML)

这是开始的事情:

public function __construct() {
    parent::construct();

    $this->load->helper(‘array(‘fungsidate’, ‘rupiah’, ‘url’);
    $this->load->model(‘obat’);
    $this->load->database();   // Should be already loaded depending on your config
}

public function add_data() {
    // Set the data
    $data[‘a’] = $this->obat->tampil_data();
    $data[‘b’] = $this->obat->kodeunik();

    // Load the views
    $componen = array(
    ‘header’ => $this->load->view(‘admin/header’, NULL, TRUE);
    ‘sidebar’ => $this->load->view(‘admin/sidebar’, NULL, TRUE);
    ‘content’ => $this->load->view(‘admin/add_obat', $data, TRUE);
    );
    $this->load->view(‘admin/index’ ,$componen);
}

根据我对您的代码的理解,您需要在模板中回显数组键

在admin / header中你将回显$ header; 在admin / sidebar中你会回显$ sidebar; 在admin / add_obat中,您需要回显$ content

然后你应该填充admin / index。我不会这样做,如果我是你说实话我可能会按原样加载每个模板,而不是在最终索引中输出它们作为HTML字符串。我不确切知道你的结构如何,所以我很难猜到。但在我的情况下,我会使用类似这样的东西而不是componen数组

public function add_data() {
    // Set the data
    $data[‘a’] = $this->obat->tampil_data();
    $data[‘b’] = $this->obat->kodeunik();

    // Load the views
    $this->load->view(‘admin/header’);
    $this->load->view(‘admin/sidebar’);
    $this->load->view(‘admin/add_obat, $data); // This should be the body template of your page
    $this->load->view(‘admin/footer’); // I guess you have a footer template
}

我希望这会对你有所帮助!