作者:老王
每天去公司上班要在路上花费一个小时的时间(城铁,公交),下班更久,因为堵车,这样来回就是至少两个小时的时间。我用来打发时间的方法一般是发呆或者看书,以前以发呆为主,因为这个,我几次坐车做过站,最近以看书为主,每天提着一本《
Web开发敏捷之道》在路上看,学到不少细节,不过坐车还是会坐过站。
---------------
转到正题上来,书里讲,RoR中做链接的时候一般不会写死,比如/controller/action,因为这样的代码可移植性不完美,更好的做法是使用link_to助手,比如:
复制内容到剪贴板
代码:
<%= link_to "title", {:controller => 'x', :action => 'y'} %>看到这里,我会想起我在使用
CakePHP的时候,对于链接,似乎一直是硬编码,习惯不好啊。
那么CakePHP里如何做比较好呢?
答案是
Html助手的link方法,不过
文档似乎很不详细,用法只能自己看
源代码去猜,大致如下:
复制内容到剪贴板
代码:
<?php echo $html->link('title', array('plugin'=>'p', 'controller'=>'c', 'action'=>'a')); ?>这样,就会生成一个形如/p/c/a的链接。
如果后面加参数的话(比如123),就可以这样:
复制内容到剪贴板
代码:
<?php echo $html->link('title', array('plugin'=>'p', 'controller'=>'c', 'action'=>'a', 123)); ?>如果后面加命名参数的话(比如page:123),就可以这样:
复制内容到剪贴板
代码:
<?php echo $html->link('title', array('plugin'=>'p', 'controller'=>'c', 'action'=>'a', 'page'=>123)); ?>具体还有其他一些需要注意的地方,这里就不多说了,想了解的自己看Router::url()方法的源代码。
BTW:几周多没关注CakePHP,发现
社区出现了一些不和谐的声音,还有一个不错的CakePHP开发人员离开了核心团队,唉,以前一直以为就中国人爱搞口水战,原来老外也是一样啊,不管怎么说,希望CakePHP能发展的更好。