📅  最后修改于: 2023-12-03 14:40:00.703000             🧑  作者: Mango
如果您正在使用 CakePHP 2,您可以创建自定义链接以便更好地自定义您的应用程序的路由和 URL。
在 config/routes.php 文件中,你可以使用 Router::connect()
方法来创建自定义链接。
Router::connect(
'/my-special-link',
array('controller' => 'pages', 'action' => 'about')
);
在这里,我们创建了一个链接 /my-special-link
,它将路由到 PagesController
的 about()
方法。
您可以使用 CakePHP 的路由功能来为自定义链接传递参数。例如,假设我们有一个名为 PostsController
的控制器,我们希望为其添加一个带有参数的自定义链接。
我们可以这样做:
Router::connect(
'/post/:id',
array('controller' => 'posts', 'action' => 'view'),
array(
'pass' => array('id'),
'id' => '[0-9]+'
)
);
现在,我们可以在我们的视图文件中链接到一个特定的帖子:
echo $this->Html->link('View Post', array('controller' => 'posts', 'action' => 'view', 'id' => $postId));
现在,我们可以通过链接 /post/123
来查看 ID 为 123 的帖子。
您还可以在自定义链接中传递查询参数。这些参数可以通过 $this->request->query()
方法在控制器中访问。
例如,我们可以这样创建一个链接:
Router::connect(
'/search',
array('controller' => 'pages', 'action' => 'search')
);
现在,在我们的视图文件中,我们可以创建一个链接:
echo $this->Html->link('Search', array('controller' => 'pages', 'action' => 'search', 'q' => 'cakephp'));
这将向页面的 URL 添加一个查询参数 q,值为 cakephp。在 PagesController
中,我们可以使用:
$query = $this->request->query('q');
来访问这个查询参数。
自定义链接可以帮助您更好地控制您的应用程序的路由和 URL。正如您在本文中看到的,它们可以带有参数和查询参数,并且非常灵活。在 CakePHP 2 中,使用 Router::connect()
方法来轻松地创建自定义链接。