关于CakePHP的几个心得,记录下来
作者:老王
对于CakePHP的控制器而言,缺省加载的助手是Html,缺省加载的组件是Session,在老版本中,如果你想在子控制器中加载新的助手(Form)或者组件(Security),必须重新写一遍缺省的助手或者组件,如下:
var $helpers = array('Html', 'Form');
var $components = array('Session', 'Security');
这样的设计多少让人有些恼火,还好现在CakePHP已经修正了这个问题,你在子控制器中只要加载你所要的东西就可以了,缺省的不用管,系统会自动帮你加上,如下。
var $helpers = array('Form');
var $components = array('Security');
------------------------
在使用助手生成表单的时候,不要使用Html助手,而是用新版本提供的Form助手,具体指令如下:
<?php echo $form->create('Thread', array('action' => 'save'));?>
......
<?php echo $form->end(); ?>
------------------------
使用form助手的时候,应该使用点模式,而不是斜线模式,这点在Cakephp的源代码注释里可以发现:
This should be "Modelname.fieldname", "Modelname/fieldname" is deprecated
function input($tagName, $options = array()) ...
------------------------
如果我们在组件里加载了Security组件,那么我们在使用Form助手生成表单的时候,系统会自动生成token隐藏域,并在提交表单的时候自动完成验证,这样有效的阻止了表单的外部提交。
------------------------
使用Form助手的时候,<?php echo $form->input('name');?>将生成一个被div, label包裹的input,而<?php echo $form->text('name');?>只会生成一个简单的input。
搜索更多相关主题的帖子:
cakephp