📜  cakephp 2 带有自定义链接 - PHP (1)

📅  最后修改于: 2023-12-03 14:40:00.703000             🧑  作者: Mango

CakePHP 2 带有自定义链接

如果您正在使用 CakePHP 2,您可以创建自定义链接以便更好地自定义您的应用程序的路由和 URL。

创建自定义链接

在 config/routes.php 文件中,你可以使用 Router::connect() 方法来创建自定义链接。

Router::connect(
    '/my-special-link',
    array('controller' => 'pages', 'action' => 'about')
);

在这里,我们创建了一个链接 /my-special-link,它将路由到 PagesControllerabout() 方法。

带参数的链接

您可以使用 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() 方法来轻松地创建自定义链接。