Input 在cakephp 3中将模板之间的文本数据发送到控制器
定义: 我想将文本数据从模板(ctp文件)发送到控制器,但它不起作用 我现在做的是: 我有这个控制器,它有一个叫做搜索的功能,如下所示:Input 在cakephp 3中将模板之间的文本数据发送到控制器,input,request,cakephp-3.2,Input,Request,Cakephp 3.2,定义: 我想将文本数据从模板(ctp文件)发送到控制器,但它不起作用 我现在做的是: 我有这个控制器,它有一个叫做搜索的功能,如下所示: /src/Controller/CoursesController : public function search() { $search = $this->request->getData('keyword'); debug($search);die; /src/Template/search: &
/src/Controller/CoursesController :
public function search()
{
$search = $this->request->getData('keyword');
debug($search);die;
/src/Template/search:
<?= $this->Form->create(null, ['url' => ['controller'=>'courses','action' => 'search']]) ?>
<?= $this->Form->control('keyword', ['label' => false, 'type'=>'text','class'=>'form-control', 'placeholder' => __('Search for...')]); ?>
<?= $this->Form->button(__('Go'), ['class' => 'btn btn-default', 'type' => 'submit']) ?>
<?= $this->Form->end() ?>
尽管我尝试从表单中获取文本数据并使用debug打印,但不幸的是,我的数组为空,请尝试以下操作:
public function search()
{
$data = $this->request->data;
if($this->request->is(['patch', 'post', 'put', 'get']))
{
$search = $this->request->data('keyword');
debug($search);
}
}
不确定这是否能解决您的问题,但控制器名称应在URL参数中大写:
['URL'=>['controller'=>'Courses','action'=>'search']]
由于视图和操作相同,因此无需设置URL。无论如何,您的代码应该可以工作,除非您有一些组件在后台执行某些操作