http://myaliveidea.com/news/ - >这是基本网址。
新闻 - >是控制器名称
readmore - >是功能名称
78 / Hacker-drama-Mr.-Robot-was-full-series-by-USA-Network - >我的博客ID和他的头衔所以我想从url中删除控制器和函数名称 像这样
http://myaliveidea.com/news/78/Hacker-drama-Mr.-Robot-is-granted-full-series-by-USA-Network
答案 0 :(得分:0)
如果您希望新闻控制器成为您的主控制器。您必须在路线中进行设置,因此当您转到http://myaliveidea.com时,它将转到新闻控制器,而不显示控制器名称。我会从您的基本网址中删除/news/
,并将新闻设置为路由中的默认控制器。
$route['default_controller'] = "news"; gets index from controller
$route['default_controller'] = "news/readmore";
这里还有很好的CI教程https://www.youtube.com/watch?v=9hRNFgSLLAQ
答案 1 :(得分:0)
在Code igniter用户指南中查看路由文档。
答案 2 :(得分:0)
您还可以在控制器中使用_remap()函数。这样,如果您有动态数据,则无需担心更新routes.php
https://ellislab.com/codeigniter/user-guide/general/controllers.html#remapping
将以下代码(未经过完全测试)放入您的新闻控制器中。
/**
* Intercept all calls to this class.
*
* @access private
* @param string
* @param array
* @return boolean
*/
function _remap($method, $params)
{
// If method exists, call that method.
if (method_exists($this, $method) !== false) return call_user_func_array(array($this, $method), $params);
// Method is actually a news_id and 1st parameter is title
$sql = 'SELECT news_id FROM news WHERE news_id = ? AND title = ?';
$news_id = $method;
$title = (isset($params[0])) ? $params[0] : '';
$qobj = $this->db->query($sql, array($method, $title);
if ($qobj->num_rows()) {
return $this->readmore($news_id, $title);
}
// Non-existing method
show_404();
}