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

时间:2011-09-17 04:39:54

标签: php cakephp html-helper

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

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

  

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

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

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

请纠正我:)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

一个原因是反向路由:例如,如果您将'/ blah'路由到数组('controller'=&gt;'articles','action'=&gt;'index')。当您使用数组创建链接时('controller'=&gt;'articles','action'=&gt;'index'),cake可以自动输出'/ blah'。这听起来可能不是很有趣;但如果稍后将路由更改为'/ foo',则link()方法可以自动将输出更改为'/ foo'。

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

For now, I am using HtmlHelper::url() method with a regular <a> to display all of my links, to keep my template clean!嗯,那你自己就更难了:)