我经常会忘记这些内置的Symfony函数用于创建链接。
recent_questions:
url: questions/recent/:page
param: { module: questions, action: recent, page: 1 }
2) 设置路由规则后,在模板中使用url_for()
助手来格式化输出的URL。
<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a>
http://myapp/questions/recent/1.html
。:/page
部分)将成为请求参数。link_to()
助手输出URL而不使用HTML <a>
标记。这个建议适用于symfony 1.0,后续版本可能也适用。
在您的sfAction类中:
string genUrl($parameters = array(), $absolute = false)
例如:$this->getController()->genUrl('yourmodule/youraction?key=value&key2=value', true);
在模板中:
这将生成一个普通链接。
string link_to($name, $internal_uri, $options = array());
例如:link_to('My link name', 'yourmodule/youraction?key=value&key2=value');
link_to('My link name', 'yourmodule/youraction?key=value&key2=value',array('query_string'=>'page=2'));
您可以直接生成URL,而无需先定义规则。
如果您想在操作中生成URL,可以使用generateUrl()助手:
$this->generateUrl('default', array('module'=>'[ModuleName]','action'=>'[ActionName]'))
url_for('[ModuleName]/[ActionName]', $absolute)
将$absolute设为true/false,如果想要显示它,请不要忘记使用echo。
但是如果您想制作一个链接(类似于 <a href=""></a>
),则可以使用link_to()辅助函数。