我是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的价值放入我的视图中..
谢谢
答案 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
}
我希望这会对你有所帮助!