我应该在 CakePHP HtmlHelper 的链接参数中使用数组还是字符串?

发布于 2024-12-05 02:34:20 字数 437 浏览 0 评论 0原文

CakePHP HtmlHelper link() 方法接受 2 种类型的变量作为第二个参数(链接 URL 参数)。

现在我想知道是否使用数组作为参数,例如

array('controller'=>'users','action'=>'login')

比使用字符串慢,例如 '/users/login'。因为 Helper 不必解析数组,只需显示链接即可。

如果是这样,那么 link() 方法的目的是什么?目前,我使用 HtmlHelper::url() 方法和常规 来显示我的所有链接,以保持我的模板干净!

请纠正我:)

CakePHP HtmlHelper link() method accepts 2 types of variable as second parameter (the link URL param).

Now I wonder if using array for the param, like

array('controller'=>'users','action'=>'login')

is slower than using string, like '/users/login'. Because Helper won't have to parse the array, just display the link.

If it is so, then what is the purpose of link() method? For now, I am using HtmlHelper::url() method with a regular <a> to display all of my links, to keep my template clean!

Please correct me :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

書生途 2024-12-12 02:34:20

原因之一是反向路由:例如,如果将 '/blah' 路由到 array('controller'=>'articles','action'=>'index')。当你用 array('controller'=>'articles','action'=>'index') 创建链接时,cake 会自动输出 '/blah'。听起来可能不太有趣;但如果稍后将路由更改为“/foo”,则 link() 方法可以自动将输出更改为“/foo”。

另一个原因是:使用数组,您可以以编程方式构建 url。它不仅仅是控制器和操作,您还拥有前缀、命名参数、您自己的自定义参数(如果您在路由中创建)等。

现在,我使用 HtmlHelper::url() 方法和常规 显示我的所有链接,保持我的模板干净! 好吧,那么你就让自己变得更难了:)

One reason is reverse routing: For examples, if you route '/blah' to array('controller'=>'articles','action'=>'index'). When you create the link with array('controller'=>'articles','action'=>'index'), cake can automatically output '/blah'. It may not sound very interesting; but if later on you change the route to '/foo', then the link() method can automatically change the output to '/foo'.

Another reason is: using array you can build the url in a programmatic fashion. It's not just controller and action, you also have prefix, named parameters, your own custom parameters if you create in routes, etc.

For now, I am using HtmlHelper::url() method with a regular <a> to display all of my links, to keep my template clean! Well, you are making it harder on yourself then :)

一身骄傲 2024-12-12 02:34:20

这提供了一种一致且灵活的方法来创建超链接、引用控制器/操作以及通过关联数组指定动态选项。除非您迭代地创建链接,否则性能不应该成为问题。即使如此,数组管理和内爆通常也比字符串连接更有效。

This provides a consistent and flexible method for creating hyperlinks, referencing controllers / actions and specifying dynamic options via associative arrays. Performance shouldn't be an issue unless you are iteratively creating links. Even then, array management and implosion is usually much more efficient than string concatenation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文