题
我总是往往忘记这些内置 解 功能用于制作联系。
解决方案
如果你的目标是有用户友好的网址整个应用程序,使用以下方法:
1)创建一个路由选择规则的模块/行动中的应用程序的路由选择。阳明海运的文件。以下的例子是路规则的一个行动,显示最新问题中的一个应用程序,违约,第1页(使用寻呼机):
recent_questions:
url: questions/recent/:page
param: { module: questions, action: recent, page: 1 }
2)一旦路由选择规则设置,使用 url_for()
助手在你的模板格式出的网址。
<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a>
在这个例子中,以下网址将构成: http://myapp/questions/recent/1.html
.
3)进入的网址(请)将分析通过路由系统,如果一个模式中找到匹配的路由选择配置规则中,命名通配符的(ie。的 :/page
部分URL)将成为请求的参数。
你也可以使用 link_to()
帮助者输出URL不使用HTML <a>
标记。
其他提示
这个建议是,为解为1.0。它可能会工作的以后版本。
在你sfAction类:
串genUrl($参数=array(),$绝对=false)
例如。$this->getController()->genUrl('yourmodule/youraction?key=value&键2=value',true);
在一个模板:
这将产生一个正常的链接。
串link_to($name,$internal_uri,$options=array());
例如。link_to('我的链接名称','yourmodule/youraction?key=value&键2=value');
此外,如果你真想要一个查询串与该网址,使用这样的:
link_to('My link name', 'yourmodule/youraction?key=value&key2=value',array('query_string'=>'page=2'));
否则,它会试图将其作为url的一部分,并有可能打破你的行动。
你可以产生URL没有直接定义的规则为先。
如果你想产生URL的行动,可以使用 generateUrl() 助手:
$this->generateUrl('default', array('module'=>'[ModuleName]','action'=>'[ActionName]'))
如果你想产生URL的模板,可以使用 url_for() 助手:
url_for('[ModuleName]/[ActionName]', $absolute)
设置$绝对true/false,不要忘记利用回声如果你想要显示。
但如果你想要做一个 链接 (喜欢的东西 <a href=""></a>
), link_to() 帮助者会做的。