-1
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';
}

控制器(DriversController.php):

App::uses('AppController', 'Controller');
class DriversController extends AppController {
    public function index() {
        $drivers = $this->Driver->find('all');
        $this->set(compact('drivers'));
    }
}
4

2 回答 2

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');
        }
    }
}

上面的信息可以在这里更详细地阅读。

于 2013-01-12T13:07:37.130 回答
-1

You can set form values by assigning to $this->data.

$this->data = $this->request->query; 
于 2013-01-12T04:20:39.750 回答