CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 烘焙坊
    • 特色资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 通讯
    • 领英
    • 优酷
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • HTTP
    • 国际化
    • 日志
    • 邮件发送器
    • 网络
    • ORM
    • 路由
      • 异常
      • 中间件
      • 路由
    • 测试套件
    • 实用工具
    • 验证
    • 视图

路由器类

将请求 URL 解析为控制器、操作和参数。使用已连接的路由将传入的 URL 字符串匹配到参数,这些参数将允许请求被调度。还处理使用已连接的路由将参数列表转换为 URL 字符串。路由允许您将世界与您的应用程序交互的方式(URL)与实现(控制器和操作)分离。

命名空间: Cake\Routing

常量

  • 字符串
    ACTION ¶
    'index|show|add|create|edit|update|remove|del|delete|view|item'

    操作名称的正则表达式

  • 字符串
    DAY ¶
    '0[1-9]|[12][0-9]|3[01]'

    日期的正则表达式

  • 字符串
    ID ¶
    '[0-9]+'

    自动递增 ID 的正则表达式

  • 字符串
    MONTH ¶
    '0[1-9]|1[012]'

    月份的正则表达式

  • 字符串
    UUID ¶
    '[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}'

    UUID 的正则表达式

  • 字符串
    YEAR ¶
    '[12][0-9]{3}'

    年份的正则表达式

属性摘要

  • $_collection protected static
    Cake\Routing\RouteCollection

    要将路由添加到其中的路由集合。

  • $_defaultExtensions protected static
    list<string>

    使用 Router::extensions() 定义的默认扩展

  • $_defaultRouteClass protected static
    字符串

    默认路由类。

  • $_fullBaseUrl protected static
    string|null

    包含将应用于所有生成的 URL 的基本字符串。例如 https://example.com

  • $_initialState protected static
    array

    首次调用 reload() 时填充初始状态,该状态位于此文件底部。这是一种欺骗行为,因为 get_class_vars() 返回静态变量的值,即使它们已更改。

  • $_namedExpressions protected static
    array<string, string>

    命名表达式

  • $_request protected static
    Cake\Http\ServerRequest|null

    维护对请求对象的引用。

  • $_requestContext protected static
    array<string, mixed>

    请求上下文数据的哈希。

  • $_routePaths protected static
    array<string, mixed>

    已解析的路由路径的缓存

  • $_urlFilters protected static
    arrayClosure>

    URL 过滤器堆栈,应用于路由 URL,然后将参数传递给路由集合。

方法摘要

  • _applyUrlFilters() protected static

    将所有已连接的 URL 过滤器应用于 URL。

  • addUrlFilter() public static

    向路由器添加 URL 过滤器。

  • createRouteBuilder() public static

    为提供的路径创建 RouteBuilder。

  • defaultRouteClass() public static

    获取或设置默认路由类。

  • extensions() public static

    获取或设置以后连接的所有路由的有效扩展。

  • fullBaseUrl() public static

    设置将用作生成此应用程序完全限定 URL 的前缀的完整基本 URL。如果未传递参数,则返回当前配置的值。

  • getNamedExpressions() public static

    获取用于 config/routes.php 的命名路由模式

  • getRequest() public static

    获取当前请求对象。

  • getRouteCollection() public static

    获取路由器内的 RouteCollection

  • normalize() public static

    规范化 URL 用于比较目的。

  • parseRequest() public static

    如果可能,获取请求的路由参数。

  • parseRoutePath() public static

    解析字符串路由路径

  • pathUrl() public static

    为路由路径生成 URL。

  • reload() public static

    重新加载默认路由器设置。重置所有类变量并删除所有已连接的路由。

  • resetRoutes() public static

    重置路由和相关状态。

  • reverse() public static

    将已解析的参数数组反转为字符串。

  • reverseToArray() public static

    将已解析的参数数组反转为数组。

  • routeExists() public static

    查找指定操作的 URL。

  • routes() public static

    获取路由范围及其连接的路由。

  • setRequest() public static

    设置当前请求实例。

  • setRouteCollection() public static

    设置路由器内的 RouteCollection

  • unwrapShortString() protected static

    从 _path 键注入路由默认值

  • url() public static

    查找指定操作的 URL。

方法详情

_applyUrlFilters() ¶ protected static

_applyUrlFilters(array $url): array

将所有已连接的 URL 过滤器应用于 URL。

参数
array $url

正在修改的 URL 数组。

返回
array
另请参阅
\Cake\Routing\Router::url()
\Cake\Routing\Router::addUrlFilter()

addUrlFilter() ¶ public static

addUrlFilter(Closure $function): void

向路由器添加 URL 过滤器。

URL 过滤器函数应用于传递给 Router::url() 的每个数组 $url,然后将 URL 发送到路由集合。

回调函数应期望以下参数

  • $params 正在处理的 URL 参数。
  • $request 当前请求。

URL 过滤器函数应始终返回参数,即使未修改。

用法

URL 过滤器允许您轻松地实现持久参数等功能。

Router::addUrlFilter(function ($params, $request) {
 if ($request->getParam('lang') && !isset($params['lang'])) {
   $params['lang'] = $request->getParam('lang');
 }
 return $params;
});
参数
Closure $function

要添加的函数

返回
void

createRouteBuilder() ¶ public static

createRouteBuilder(string $path, array<string, mixed> $options = []): Cake\Routing\RouteBuilder

为提供的路径创建 RouteBuilder。

参数
string $path

要将生成器设置为的路径。

array<string, mixed> $options optional

生成器的选项

返回
Cake\Routing\RouteBuilder

defaultRouteClass() ¶ public static

defaultRouteClass(string|null $routeClass = null): string|null

获取或设置默认路由类。

参数
string|null $routeClass optional

类名。

返回
string|null

extensions() ¶ public static

extensions(list<string>|string|null $extensions = null, bool $merge = true): list<string>

获取或设置以后连接的所有路由的有效扩展。

指示路由器从 URL 中解析出文件扩展名。例如,http://example.com/posts.rss 会得到 "rss" 的文件扩展名。文件扩展名本身在控制器中以 $this->request->getParam('_ext') 的形式提供,并由内容类型协商使用来自动切换到备用布局和模板,并加载与给定内容相对应的助手,例如 RssHelper。切换布局和助手需要选定的扩展名在 Cake\Http\Response 中具有定义的 MIME 类型。

可以将字符串或有效扩展名的数组传递给此方法。如果不带任何参数调用,它将返回当前设置的扩展名列表。

参数
list<string>|string|null $extensions 可选

要添加的扩展名列表。

bool $merge 可选

是否与现有扩展名合并或覆盖。默认值为 true。

返回
list<string>

fullBaseUrl() ¶ public static

fullBaseUrl(string|null $base = null): string

设置将用作生成此应用程序完全限定 URL 的前缀的完整基本 URL。如果未传递参数,则返回当前配置的值。

注意

如果您在运行时更改配置值 App.fullBaseUrl 并期望路由器使用新设置生成链接,则需要再次调用此方法并传递该值。

参数
string|null $base 可选

包含域的生成 URL 的前缀。例如:http://example.com

返回
字符串

getNamedExpressions() ¶ public static

getNamedExpressions(): array<string, string>

获取用于 config/routes.php 的命名路由模式

返回
array<string, string>
另请参阅
\Cake\Routing\Router::$_namedExpressions

getRequest() ¶ public static

getRequest(): Cake\Http\ServerRequest|null

获取当前请求对象。

返回
Cake\Http\ServerRequest|null

getRouteCollection() ¶ public static

getRouteCollection(): Cake\Routing\RouteCollection

获取路由器内的 RouteCollection

返回
Cake\Routing\RouteCollection

normalize() ¶ public static

normalize(array|string $url = '/'): string

规范化 URL 用于比较目的。

将剥离基本路径并替换任何双斜杠。它不会统一输入值的 casing 和下划线。

参数
array|string $url 可选

要标准化的 URL。数组或字符串 URL。

返回
字符串

parseRequest() ¶ public static

parseRequest(Cake\Http\ServerRequest $request): array

如果可能,获取请求的路由参数。

参数
Cake\Http\ServerRequest $request

要解析请求数据的请求。

返回
array
抛出
Cake\Routing\Exception\MissingRouteException
当无法处理路由时

parseRoutePath() ¶ public static

parseRoutePath(string $url): array<string|int, string>

解析字符串路由路径

字符串示例

  • Bookmarks::view
  • Admin/Bookmarks::view
  • Cms.Articles::edit
  • Vendor/Cms.Management/Admin/Articles::view
参数
string $url

以 [Plugin.][Prefix/]Controller::action 格式的路由路径

返回
array<string|int, string>

pathUrl() ¶ public static

pathUrl(string $path, array $params = [], bool $full = false): string

为路由路径生成 URL。

路由路径示例

  • Bookmarks::view
  • Admin/Bookmarks::view
  • Cms.Articles::edit
  • Vendor/Cms.Management/Admin/Articles::view
参数
string $path

指定控制器和操作的路由路径,可以选择包含插件和前缀。

array $params 可选

指定任何其他参数的数组。也可以是 Router::url() 支持的任何特殊参数。

bool $full 可选

如果为 true,则完整的基本 URL 将被附加到结果。默认值为 false。

返回
字符串

reload() ¶ public static

reload(): void

重新加载默认路由器设置。重置所有类变量并删除所有已连接的路由。

返回
void

resetRoutes() ¶ public static

resetRoutes(): void

重置路由和相关状态。

类似于 reload(),但它不会重置所有全局状态,因为这会导致某些插件测试用例场景中的行为不正确。

此方法将重置

  • 路由
  • URL 过滤器
  • 已初始化的属性

扩展名和默认路由类不会被修改

返回
void

reverse() ¶ public static

reverse(Cake\Http\ServerRequest|array $params, bool $full = false): string

将已解析的参数数组反转为字符串。

与 Router::url() 的工作方式类似,但由于解析后的 URL 包含“pass”、“_matchedRoute”等额外的键,因此需要对这些键进行特殊处理才能将参数数组反转为字符串 URL。

参数
Cake\Http\ServerRequest|array $params

需要反转的参数数组或 {@link \Cake\Http\ServerRequest} 对象。

bool $full 可选

设置为 true 以在反转 URL 时包含完整的 URL,包括协议。

返回
字符串

reverseToArray() ¶ public static

reverseToArray(Cake\Http\ServerRequest|array $params): array

将已解析的参数数组反转为数组。

与 Router::url() 的工作方式类似,但由于解析后的 URL 包含“pass”、“_matchedRoute”等额外的键,因此需要对这些键进行特殊处理才能将参数数组反转为字符串 URL。

参数
Cake\Http\ServerRequest|array $params

需要反转的参数数组或 {@link \Cake\Http\ServerRequest} 对象。

返回
array

routeExists() ¶ public static

routeExists(array|string|null $url = null, bool $full = false): bool

查找指定操作的 URL。

如果 URL 存在,则返回布尔值

用法

参数
array|string|null $url 可选

指定以下任何内容的数组:'controller'、'action'、'plugin' 此外,您可以提供路由元素或查询字符串参数。如果为字符串,它可以是任何有效的 URL 字符串。

bool $full 可选

如果为 true,则完整的基本 URL 将被附加到结果。默认值为 false。

返回
bool
另请参阅
Router::url()

routes() ¶ public static

routes(): arrayCake\Routing\Route\Route>

获取路由范围及其连接的路由。

返回
arrayCake\Routing\Route\Route>

setRequest() ¶ public static

setRequest(Cake\Http\ServerRequest $request): void

设置当前请求实例。

参数
Cake\Http\ServerRequest $request

请求对象。

返回
void

setRouteCollection() ¶ public static

setRouteCollection(Cake\Routing\RouteCollection $routeCollection): void

设置路由器内的 RouteCollection

参数
Cake\Routing\RouteCollection $routeCollection

路由集合

返回
void

unwrapShortString() ¶ protected static

unwrapShortString(array $url): array

从 _path 键注入路由默认值

参数
array $url

带有 _path 键的路由数组

返回
array

url() ¶ public static

url(Psr\Http\Message\UriInterface|array|string|null $url = null, bool $full = false): string

查找指定操作的 URL。

返回指向控制器和操作组合的 URL。

用法

  • Router::url('/posts/edit/1'); 返回带有基本目录前缀的字符串。此用法不使用反转路由。
  • Router::url(['controller' => 'Posts', 'action' => 'edit']); 返回通过反转路由生成的 URL。
  • Router::url(['_name' => 'custom-name', ...]); 返回通过反转路由生成的 URL。此形式允许您利用命名路由。

有一些“特殊”参数可以更改最终生成的 URL 字符串

  • _base - 设置为 false 以从生成的 URL 中删除基本路径。如果您的应用程序不在根目录中,则可以使用它来生成“Cake 相对”的 URL。Cake 相对 URL 在使用 requestAction 时是必需的。
  • _scheme - 设置为在不同的方案(如 webcal 或 ftp)上创建链接。默认为当前方案。
  • _host - 设置用于链接的主机。默认为当前主机。
  • _port - 如果需要在非标准端口上创建链接,请设置端口。
  • _full - 如果为 true,则 Router::fullBaseUrl() 的输出将被附加到生成的 URL。
  • # - 允许您设置 URL 哈希片段。
  • _https - 设置为 true 以将生成的 URL 转换为 https,或设置为 false 以强制使用 http。
  • _name - 路由名称。如果您已设置命名路由,则可以使用此键指定它。
参数
Psr\Http\Message\UriInterface|array|string|null $url 可选

指定以下任何内容的数组:'controller'、'action'、'plugin' 此外,您可以提供路由元素或查询字符串参数。如果为字符串,它可以是任何有效的 URL 字符串,也可以是 UriInterface 实例。

bool $full 可选

如果为 true,则完整的基本 URL 将被附加到结果。默认值为 false。

返回
字符串
抛出
Cake\Core\Exception\CakeException
当找不到路由名称时

属性详细信息

$_collection ¶ protected static

要将路由添加到其中的路由集合。

类型
Cake\Routing\RouteCollection

$_defaultExtensions ¶ protected static

使用 Router::extensions() 定义的默认扩展

类型
list<string>

$_defaultRouteClass ¶ protected static

默认路由类。

类型
字符串

$_fullBaseUrl ¶ protected static

包含将应用于所有生成的 URL 的基本字符串。例如 https://example.com

类型
string|null

$_initialState ¶ protected static

首次调用 reload() 时填充初始状态,该状态位于此文件底部。这是一种欺骗行为,因为 get_class_vars() 返回静态变量的值,即使它们已更改。

类型
array

$_namedExpressions ¶ protected static

命名表达式

类型
array<string, string>

$_request ¶ 受保护 静态

维护对请求对象的引用。

类型
Cake\Http\ServerRequest|null

$_requestContext ¶ 受保护 静态

请求上下文数据的哈希。

类型
array<string, mixed>

$_routePaths ¶ 受保护 静态

已解析的路由路径的缓存

类型
array<string, mixed>

$_urlFilters ¶ 受保护 静态

URL 过滤器堆栈,应用于路由 URL,然后将参数传递给路由集合。

类型
arrayClosure>
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 烘焙坊
  • 特色资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 通讯
  • 领英
  • 优酷
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成