发新话题
打印

关于CakePHP的几个心得,记录下来

关于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。

TOP

<?php echo $form->end(); ?>

除了输出</form>,还有什么“副作用”?

TOP

发新话题