echo $this->Form->create('Driver', array('type' => 'get'));
echo $this->Form->input('name');
echo $this->Form->end('Search');
结果$ this-> request:
query => array(
'name' => 'some name'
)
问题是输入表格在搜索后为空$this->request->query['name'] = 'some name'
当将表单更改回post
编辑。包括模型和控制器。为了测试我使用干净安装。 型号(Driver.php):
App::uses('AppModel', 'Model');
class Driver extends AppModel {
public $displayField = 'name';
}
Controller(DriversController.php):
App::uses('AppController', 'Controller');
class DriversController extends AppController {
public function index() {
$drivers = $this->Driver->find('all');
$this->set(compact('drivers'));
}
}
答案 0 :(得分:0)
在您的控制器代码中,您没有向我们显示您尝试访问提交的表单值的位置,因此我将尝试提供一些一般信息以帮助您移动。
要访问表单数据,您需要冷却使用请求。要查看到底发生了什么,请在控制器中输入以下内容之一...
print_r($this->request->data);
或
print_r($this->request);
其中任何一个都会向您显示CakePHP注册的任何数据。
如果要使用模型保存此保存。使用...
$this->Driver->save($this->request->data)
你可能想先检查它是一个帖子,但是......让我们完成代码......
public function submit() {
if ($this->request->is('post')) {
$this->Driver->create();
if ($this->Driver->save($this->request->data)) {
$this->Session->setFlash('Saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('FAILED');
}
}
}
以上信息可以更详细地阅读here。
答案 1 :(得分:-1)
您可以通过分配$ this->数据来设置表单值。
$this->data = $this->request->query;