在我的routes.php文件的文件我已經添加了路由下面的代碼:如何在數據庫中設置codeigniter中的動態路由?
$route['report/:num'] = "home/reportcard/$1";
這裏是我的控制器代碼:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller
{
function __construct() {
parent::__construct();
if(empty($this->session->userdata('id_user'))){
$this->session->set_flashdata('flash_data', 'You cannot access');
redirect('login');
}
}
public function index(){
$this->load->model("item_model");
$data['records'] = $this->item_model->getAllItems();
$this->load->view('home',$data);
}
function reportcard($id){
$this->load->model("item_model");
$data['report'] = $this->item_model->getReport($id);
$this->load->view('report', $data);
}
function logout(){
$data=['id_user','username'];
$this->session->unset_userdata($data);
redirect('login');
}
}
這裏是我的模型代碼:
<?php
class Item_model extends CI_Model
{
function getAllItems()
{
$this->load->database();
$q = $this->db->get("item");
if($q->num_rows() > 0)
{
return $q->result();
}
return array();
}
public function getReport($id){
$this->db->select('*');
$this->db->from('item');
$this->db->where('item.id', $id);
$query = $this->db->get();
if($query->num_rows() > 0)
return $data->result();
}
}
?>
這是觀點的代碼。我只是打印數組中的我report_view用於測試目的:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
print_r($report);
?>
這是我home_view代碼:
<div class="row">
<ul class="home-grid">
<?php foreach ($query->result() as $row): ?>
<li>
<a href="<?php echo base_url() ?>report/<?=$row->item ?>/<?=$row->id ?>" class="btn btn-lg btn-warning view-report"><span class="glyphicon glyphicon-list-alt"></span> <br/>
<?=$row->item ?><br/>
<small>Click here for see report</small>
</a>
</li>
<?php endforeach; ?>
</ul>
我已經試過多次來查看陣列。但未能獲得數組。我如何加載視圖?當我從家中點擊我的物品時,它會創建一個網址,如http://localhost/super_shop_register/report/1
但是沒有顯示任何數據。顯示「找不到對象!」。這裏是我的看法形象: 點擊後,它會顯示如下:
我該如何解決這個問題?
super_shop_register是你的base_url的一部分嗎?在你發佈的視圖代碼中,它看起來應該是report /,$ row-> item和$ row-> id之後的兩個參數,爲什麼只有id出現? – Pacio
我認爲它與另一條路線相匹配,你可以發佈你的完整路線 –
base_url是好的。當我拍攝快照時,代碼只有$ row-id。這就是爲什麼在url中只顯示id。這根本不是什麼大問題。 $ config ['base_url'] ='http:// localhost/super_shop_register'; –