【发布时间】:2017-08-28 01:21:05
【问题描述】:
在我的 routes.php 文件中,我添加了以下路由代码:
$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的网址
但没有显示任何数据。显示“找不到对象!”。这是我的观点图片: 点击item后会显示如下:
我该如何解决这个问题?
【问题讨论】:
-
super_shop_register 是您的 base_url 的一部分吗?在你发布的视图代码中看起来他们应该是report/之后的两个参数,$row->item和$row->id,为什么只有id出现?
-
我认为它与另一条路线匹配,您可以发布您的完整路线
-
base_url 没问题。当我拍摄快照时,代码只有 $row-id。这就是为什么在 url 中只显示 id 的原因。这根本不是什么大问题。 $config['base_url'] = 'localhost/super_shop_register';
-
这是我的 route.php 代码:$route['default_controller'] = 'login'; $route['report/:num'] = "home/reportcard/$1"; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
-
没有人注意到这是为什么?在您的模型中,这是错误的 return $data->result();实际上 $query->result();是对的。
标签: php html mysql codeigniter