【问题标题】:OctoberCMS Get URL to CMS pageOctoberCMS 获取 CMS 页面的 URL
【发布时间】:2020-02-27 11:09:52
【问题描述】:

在 10 月 CMS 中,您可以使用 reverse routing 在 Twig 模板中轻松创建指向 CMS 页面的链接。例如:

<a href="{{ 'help'|page }}">Go to help page</a>

将链接到文件名为 help.htm 的 CMS 页面,并将 URL 替换为该页面中定义的 URL。

但是,在我的一生中,我无法弄清楚如何获取组件中 CMS 页面的 URL 以创建指向它的重定向。

我试过了:

return Redirect::to('help');

它只是重定向到/help URL,这不是正确的 URL,所以我得到了 404。

我也试过了:

return Redirect::to(\Url::route('help'));

但是这会产生错误,因为它没有注册为路由。

我不能硬编码 URL 的原因是因为我使用了 Translate 插件,这意味着我可以根据语言使用不同的 URL。例如,在英语中是/en/help,但在西班牙语中是/es/ayuda。放:

{{ 'help'|page }}

在我的 Twig 文件中会根据当前语言自动获取正确的 URL。

这可以在组件或控制器中执行吗?

【问题讨论】:

    标签: redirect twig octobercms


    【解决方案1】:

    在您的组件中,您可以使用controller's pageUrl 方法。

    $this->controller->pageUrl(<file_name>, <params>);
    

    根据您的需要,这应该可以解决问题

    return Redirect::to($this->controller->pageUrl('help'));
    

    如有任何疑问,请发表评论。

    【讨论】:

    • 完美运行。谢谢。你知识渊博。
    • 谢谢@Mike,我很高兴它帮助了你:)
    猜你喜欢
    • 2020-01-29
    • 2017-09-23
    • 2011-04-07
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    相关资源
    最近更新 更多