1.建立controllers该文件必须命名为 「Blog.php」,大写 「H」。

<?php
namespace App\\Controllers;
class Blog extends BaseController
{
public function index()
{
echo \'Hello World!\';
}
}


2.建立Routesapp\\Config\\Routes.php

$routes->get(\'路径\', \'控制器::方法\');
$routes->get(\'/blog\', \'blog::index\');

/blog 是访问的 URI
这意味着当使用者输入 http://localhost/blog 时,此路由会被触发。
(只能小写开头)

Blog::index 指向 Blog 控制器中的 index 方法。
控制器档案应位于 app/Controllers/ 目录中,文件名为 Blog.php。
(大小写没差)


3.呼叫blog控制器的其他方法(function)有两种方法:/blog/<方法名>

  • 手动设置(更精确控制,适合大型专案)$routes->get(\'/blog/A\', \'Blog::A\');

  • 使用通配符匹配多个方法(function)$routes->get(\'/blog/(:any)\', \'Blog::$1\');


4.夹带参数

$routes->get(\'/blog/(:any)/(:num)\', \'Blog::$1/$2\');

/blog/<方法名>/<数字>Blog:指向 Blog 控制器。$1:捕获的第一部分((:any)),用作方法名称。$2:捕获的第二部分((:num)),用作传递给方法的参数。

$routes->get(\'/blog/(:any)\', \'Blog::$1\');不过实际上这个也可以抓到一个参数虽然看似参数被方法占用了

public function bbb($id)
{
echo $id;
}

blog/bbb/123


// public/ ->Home的index
$routes->get(\'/\', \'Home::index\');

// public/blog ->blog的index

$routes->get(\'/blog\', \'Blog::index\');
// public/blog/(blog的任意方法) ->blog的blog的任意方法里面
$routes->get(\'/blog/(:any)\', \'Blog::$1\'); // 更具体的 /blog 路由放在前面

// public/(home的任意方法) ->home的blog的任意方法里面
$routes->get(\'/(:any)\', \'Home::$1\');

动态路由您可以在路由中使用动态部分来捕获 URL 中的变量。这些动态部分可以是:(:any):匹配任何字符(包括 /)(:segment):匹配单个段(即由 / 分隔的部分,并且不能匹配 /)(:num):只匹配数字(:alpha):只匹配字母(:alphanum):匹配字母和数字


/Config/app.php*public string $permittedURIChars = \'a-z 0-9~%.:_-一-龥()\';这样,您就能够在 URL 中传递中文参数,并且 CodeIgniter 路由能够正确处理它。