使用YII-CHtml::link和CHtml::image代替HTML时的混乱

使用YII-CHtml::link和CHtml::image代替HTML时的混乱,yii,Yii,我已经在YII中启动了一个应用程序,我想使用YII的适当标准,但对其CHTML类的使用有点好奇。我认为使用CHtml::link()或CHtml::image()而不是普通的HTML代码和将花费更多的时间在服务器端的应用程序上。我试图寻找一些使用它的理由,但没有成功地找到任何关于为什么要使用它以及它对传统HTML有什么好处的好资源。就像我可以使用所有这些方法在普通HTML代码中定义操作路径一样,那么为什么要使用它呢 如需澄清,请提供任何帮助或参考 谢谢让我们谈谈CHtml::link()。它的主

我已经在YII中启动了一个应用程序,我想使用YII的适当标准,但对其CHTML类的使用有点好奇。我认为使用
CHtml::link()
CHtml::image()
而不是普通的HTML代码
将花费更多的时间在服务器端的应用程序上。我试图寻找一些使用它的理由,但没有成功地找到任何关于为什么要使用它以及它对传统HTML有什么好处的好资源。就像我可以使用所有这些方法在普通HTML代码中定义操作路径一样,那么为什么要使用它呢

如需澄清,请提供任何帮助或参考


谢谢

让我们谈谈CHtml::link()。它的主要优点是,只需将数组作为参数传递,就可以指示控制器路由并发送一些get变量。假设您想进入LivingController的eat()操作,变量'meat'的值为'hamburgers'。可以这样做:

> CHtml::link(array('LivingController/eat', 'meal'=>'hamburgers'));
如果你只想用
来表达这一点,那么我不需要告诉你这有多困难。此外,我们应该记住,使用CHtml::link()生成的链接将始终有效,即使您更改了url格式。这不会发生在
:每次更改url格式时,都必须重写url


至少对我来说,CHtml::image()的优点不太清楚。老实说,我认为这只是一个封装的问题

我通常将chtml与模型和表单结合使用,这样您就可以自动填充所有值,等等。感谢回复,我现在实际上正在处理站点导航菜单,它与模型无关,只是图像上有html链接,所以您认为纯html在这里可以正常工作吗?而chtml仅用于事务性表单和链接?我不是yii方面的专家,不久前也使用过它,但是的,我在大多数情况下使用纯html,如您所述,并且仅用于表单,可能还有其他一些情况,我现在想不起示例,抱歉。让我们等待答案,也许有人有更多的话要说哦,是的!现在我明白了。YII的开发人员并没有愚蠢到在这些类上浪费时间;它们绝对有用。感谢ACG的澄清:)谢谢!我使用createUrl来创建链接,它也可以做同样的工作,这就是为什么我不记得为什么我需要chtml::link 8)是的,但是createUrl()不创建链接。实际上,createUrl()是由CHtml::link()使用的,通过CHtml::normalizeUrl()。是的,我的意思是我用它在link
中创建url,可能想修改上面的代码如下:CHtml::link('Awesome link Text',array('LivingController/eat','mean'=>'hamburgers');