这是我的路由代码。
$route['news(/:num)?'] = 'news/index$1';
$route['events(/:num)'] = 'news/events$1';
这是我的控制器代码。
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class News extends Public_Controller
{
public function __construct()
{
parent::__construct();
parent::__construct();
$this->lang->load('news');
$this->load->helper('url');
}
public function index()
{
$data = 'index call';
// Build the page
$this->template->title($this->module_details['name'])
->build('index', $data);
}
public function events()
{
$data = 'events call';
// Build the page
$this->template->title($this->module_details['name'])
->build('index', $data);
}
}
http://example.com/news
此网址正在运行。
http://example.com/events
这个网址并不是真的。
答案 0 :(得分:1)
我在相同的问题之前堆积并找到了解决方案。
application/config/routes.php
文件。由于模块路由仅在其运行时才起作用。你必须路由一直运行的文件,该文件是系统routes.php
所以第一段路由应该是模块路由文件中的模块名。
适用于/news/722/hello-world/
网址:
$route['news(/:num)?'] = 'news/index$1'; // This will work
$route['events(/:num)'] = 'news/events$1'; // This wont work
如果您想更改路由events
,则必须修改application/config/routes.php
我的讨论PyroCMS论坛:
https://forum.pyrocms.com/discussion/25301/navigation-link-to-module-with-custom-routing