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


Should I use array or string in link param in CakePHP HtmlHelper?

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

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

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

比使用字符串慢,如'/users/login'。因为帮助程序不必分析数组,所以只需显示链接。

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

请纠正我:)

一个原因是反向路由:例如,如果将"/blah"路由到array("controller"=>"articles","action"=>"index"(。当你使用array('controller'=>'articles','action'=>'index'(创建链接时,蛋糕可以自动输出'/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! 好吧,你让自己更难,然后:)

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