2012-04-26 88 views
4

我在YII中启动了一个应用程序,我想使用适当的YII标准,但对使用它的CHTML Class有点好奇。我认为使用CHtml::link()CHtml::image()而不是普通的HTML代码<a></a><img src... />将花费更多时间在服务器端应用程序。我试图寻找一些理由来使用它,但还没有找到任何好的资源,为什么我应该使用它,以及它如何有益于传统的HTML。就像我可以使用所有这些方法定义到普通HTML代码的行动路径,那么为什么使用它混淆了使用YII CHtml :: link和CHtml :: image代替HTML

澄清,将不胜感激

感谢

任何帮助或引用
+0

我通常将chtml与模型和表单结合使用,这样您就可以自动填充所有值。 – llamerr 2012-04-26 12:09:47

+0

感谢您的回复,我现在正在制作网站导航菜单,与模型无关只是HTML链接图像在那里,所以你认为纯html在这里可以正常工作吗?和chtml仅用于交易形式和链接? – Junaid 2012-04-26 12:15:25

+2

我不是一个亲在yii和不久前使用它,但是,是的,我在大多数情况下使用普通的HTML像你描述和使用chtml只是为了形式,也许一些其他情况下,现在不记得例子,对不起。让我们等待答案,也许有人有更多的要告诉 – llamerr 2012-04-26 12:17:47

回答

5

讲起了CHtml ::链接( )。它的主要优点是可以通过传递一个数组作为参数来指示控制器路由并发送一些获取变量。假设你想去LivingController的eat()动作,变量为'meal',其值为'hamburgers'。它可以简单地做这样的:

> CHtml::link(array('LivingController/eat', 'meal'=>'hamburgers')); 

如果你只想表达这种使用<a></a>,然后我不需要告诉你这将是多么困难得多是。另外,我们应该记住,使用CHtml :: link()生成的链接将始终有效,即使您更改了url格式。 <a></a>不会发生这种情况:每次更改网址格式时,您都必须重写网址。

CHtml :: image()的优点不太清楚,至少对我而言。真诚的,我认为这只是一个封装问题。

+0

+1好说.... – 2012-04-26 21:41:37

+1

哦,是的!对我来说现在URL格式化了。 YII的开发者实际上并不那么愚蠢,以至于不能在这些课程上浪费时间;他们绝对有用。感谢ACG澄清:)赞赏! – Junaid 2012-04-27 05:04:49

+0

我使用创建链接创建链接http://www.yiiframework.com/doc/api/1.1/CController#createUrl-detail它做同样的工作,这就是为什么我不记得为什么我需要chtml :: link 8) – llamerr 2012-04-27 08:34:19