【发布时间】:2014-04-10 19:38:37
【问题描述】:
我的问题是我无法读取单个页面上的一条数据。例如,在首页上,我从数据库中提取了一些笑话;我希望能够点击一个笑话并将用户发送到一个 url,例如jokes.com/read/a-chicken-crossed-the-road。目前,它会将我发送到我的自定义 404 页面,其 url 为 jokes.com/read/1(1 是 joke_id),我有一段时间无法解决这个问题,所以我想我会在这里试试。
这是我的设置:
主视图:
<a href="<?php base_url()?>read/<?php echo $joke_id ?>"> <p class="joke-content"><?php echo $joke; ?></p></a>
阅读视图:
<?php
foreach($results as $row){
echo "<li>$row->joke</li>";
echo "<li>$row->name</li>";
echo "<li>$row->date_added</li>";
}
?>
控制器:
//constructor class enables a function called to be used in any function within this controller
function __construct(){
// Call the Controller constructor
parent::__construct();
$this->load->model('getjokes_m');
}
public function index(){
$this->read();
}
//main jokes functions grabs all the jokes in the database and orders them in their correct category
public function read(){
$data['results'] = $this->getjokes_m->readJokes($this->uri->segment(3));
$this->load->view('template/header');
$this->load->view('template/sidebar');
$this->load->view('content/read', $data);
$this->load->view('template/footer');
}
最后是我的模型:
function readJokes()
{
$query = $this->db->query('SELECT j.*, c.name FROM jokes j LEFT JOIN category c ON c.category_id = j.category_id WHERE joke_id = ?');
//displays the results if the table has data inside
return $query->result();
}
路线:
$route['default_controller'] = "top";
$route['404_override'] = 'not_found';
$route['register'] = 'login/register';
$route['logout'] = 'login/logout';
$route['admin'] = 'admin/login';
$route['noaccess'] = 'login/noaccess';
我认为可能是我使用的 sql 语句,因为它不返回任何数据。
如果有人能指出正确的方向,说明为什么这不起作用并获得 URL slug 中的前 55 个字符,那就太好了。
【问题讨论】:
-
您的“视图”甚至没有链接...
-
数据的链接在主控制器中,我已经编辑它现在显示
-
应该是 href = '
-
我试过了,它对 URL 没有任何影响
-
你能显示 routes.php 吗?
标签: php mysql sql codeigniter url