Cakephp如何正确使用$ components = array('Security')

时间:2013-09-16 14:28:59

标签: php cakephp cakephp-2.3

我无法理解发生了什么。 我只是想调用PostsController.index()但它不起作用。

// View/Posts/index.ctp
<?php echo $this->Form->create(false, array('type' => 'post')); ?>

如果我在PostsController注释掉这个。

// public $components = array('Security');

环境: Cakephp 2.3.8 PHP版本5.4.7

更新
能够使用Csrf检查就足够了,所以我修改了下面的“安全”选项。

public $components = array(
    'Security' => array('validatePost' => false),
);

但我仍然不了解SecurityComponent的行为......

1 个答案:

答案 0 :(得分:1)

  1. 传递“false”作为第一个参数不是一个好主意。应该有一个模型名称,如:

    echo $ this-&gt; Form-&gt; create('Post',array('type'=&gt;'post'));

  2. 如果您想要自定义操作,请使用'url'参数:like:

    echo $ this-&gt; Form-&gt; create('post',array('type'=&gt;'post','url'=&gt; array('controller'=&gt;'Post','动作 '=&GT;' 添加“));