我正在尝试设置一条路线,CodeIgniter通过按键'系列'并且' id'。它会遵循这个逻辑:
照片/ :返回所有表格'照片'在数据库中 照片/系列:返回与特定系列相匹配的所有照片。 '照片/自然'将使用按键系列'返回所有照片等于 '自然&#39 ;.
照片/系列/ ID :返回单张照片。 '照片/自然/ 1'将返回带有关键'系列'的照片。等同于自然'并且' id'等于 ' 1'
致电' http://localhost/public_html/photos/nature/1'我收到以下错误:
遇到了PHP错误 严重性:错误
消息:调用未定义的方法CI_DB_mysqli_result :: where()
文件名:models / Photos_model.php
行号:14
回溯:
我的照片'表结构:
CREATE TABLE `photos` (
`filename` varchar(45) NOT NULL,
`series` varchar(45) NOT NULL,
`id` int(11) NOT NULL,
`caption` varchar(45) NOT NULL,
`description` varchar(45) NOT NULL,
PRIMARY KEY (`filename`))
'照片'表的值:
INSERT INTO `photos` VALUES
('file00053809264.jpg','nature',1,'waterfall','description of waterfall'),
('file000267747089.jpg','nature',2,'forest','description of burning forest'),
('file000325161223.jpg','cloudburst',1,'sky','description of sky'),
('file000267804564.jpg','cloudburst',2,'bursting abstract','description bursting abstract'),
('file000132701536.jpg','landmarks',1,'taj mahal','description taj mahal');
CodeIgniter中的我的照片控制器:
<?php
class Photos extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('photos_model');
$this->load->helper('url_helper');
$this->load->helper('html'); // needed for header
$this->load->helper('url'); // needed for footer
}
public function view($series = NULL, $id = NULL) {
$data['photos'] = $this->photos_model->get_photos($series, $id)->result_array();
if (empty($data['photos'])){
show_404();
}
$data['title'] = 'Photos';
$this->load->view('templates/header', $data);
$this->load->view('photos/view', $data);
$this->load->view('templates/footer');
}
public function index() {
$data['photos'] = $this->photos_model->get_photos();
$data['title'] = 'Photos';
$this->load->view('templates/header', $data);
$this->load->view('photos/index', $data);
$this->load->view('templates/footer');
}
}
我的照片模特:
<?php
class Photos_model extends CI_Model {
public function __construct() {
$this->load->database();
}
public function get_photos($series = FALSE, $id = FALSE) {
if ($series === FALSE && $id === FALSE) {
$query = $this->db->get('photos');
} else if ($id === FALSE) {
$query = $this->db->get_where('photos', array('series' => $series));
} else {
$query = $this->db->get('photos')->where('series', $series)->where('id', $id);
}
return $query->result_array();
}
}
我的照片/ view.php&#39;视图:
<?php
echo $photos['photos'];
我的路线配置:
$route['photos/'] = 'photos/view';
$route['photos/(:any)'] = 'photos/view/$1';
$route['photos/(:any)/(:num)'] = 'photos/view/$1/$2';
如果你能告诉我我在哪里以及如何滑倒,你能否向我解释一下?谢谢。
答案 0 :(得分:1)
根据where()
之后调用get()
的错误可能导致此问题作为替代方式移动where()
之前的所有get()
次来电或使用get_where()
$query = $this->db
->where('series', $series)
->where('id', $id)
->get('photos');
OR
$query = $this->db->get_where('photos', array('series' => $series,'id'=>$id));