cakephp传递Args为空

时间:2013-05-19 22:02:31

标签: cakephp cakephp-2.0

我在一个视图中有一个简单的表单,我正在尝试访问$ this => passedArgs,但它又回来了。

我正在尝试使用cakeDC搜索插件,该插件使用$ this => passedArgs。我必须做一些简单的事情才能从表单提交中获得结果。

查看视图

<?php
echo $this->Form->create('Member', array(
    'url' => array_merge(array('action' => 'find'), $this->params['pass'])
));
echo $this->Form->input('name', array('div' => false));
echo $this->Form->submit(__('Search'), array('div' => false));
echo $this->Form->end();
?>

控制器

public function find() {
    debug($this->passedArgs);
    exit;
}

我尝试过$ this-&gt; request-&gt; params

array(
 'plugin' => null,
 'controller' => 'members',
 'action' => 'find',
 'named' => array(),
 'pass' => array(),
 'isAjax' => false
)

我有添加方法get到表单。 之前已经问过这个问题,但他们解决了在公共场合使用较少的案例$ uses = array('order','product');什么时候应该是public $ uses = array('Order','Product');没用。

Cakephp版本2.3.5

感谢您的帮助

更新

我已将表单设置为方法get,这是url:

http://localhost/loyalty/members/find?name=searchtext

我已删除该插件,但仍然没有得到任何$ this-&gt; passedArgs,但我现在获取$ this-&gt; request-&gt; data ['name']的数据。一旦我把public $ components = array('Search.Prg');我再次注意到$ this-&gt; request-&gt; data ['name']。

我再次尝试使用Search插件获取$ this-&gt; Prg-&gt; parsedParams(),我只是得到了array()

1 个答案:

答案 0 :(得分:1)

文档很清楚。 你不能只调试尚未设置的东西。 因此,包含插件本身(及其组件)是不够的。

来自自述文件:

public function find() {
    $this->Prg->commonProcess();
    $this->paginate['conditions'] = $this->ModelName->parseCriteria($this->passedArgs);
    $this->set('...', $this->paginate());
}

注意commonProcess()调用,它只会使passArgs包含你需要的东西。