0

我正在使用 cakePHP v2.4,并且正在尝试自动填写表格。我在控制器中所做的是:

$contact = $this->Contact->findById($id);
$this->set('data', $contact);

在我看来,我像这样使用 de formHelper:

echo $this->Form->create('Person');
echo $this->Form->text('firstname', array('label' => 'Firstname'));
echo $this->Form->end();

我希望我输入的名字自动填充我从请求中获得的值。这就是我在视图中执行 pr($data) 时得到的结果:

Array
(
[Contact] => Array
    (
        [id] => 15
        [created] => 0000-00-00 00:00:00
        [modified] => 0000-00-00 00:00:00
        [type] => person
    )

[Person] => Array
    (
        [contact_id] => 15
        [firstname] => eric
    )
)

如您所见,我有一个表格“联系人”,根据类型,无论是“人”还是“公司”,我都会加载相应的表格。我不知道我在这里错过了什么,我还没有找到答案。

4

1 回答 1

0

它应该是$this->request->data = $contact;,并且应该只在 GET 请求上完成,以防您将表单数据发布回相同的操作:

if($this->request->is('post'))
{
    // process the posted form data
}
else
{
    $this->request->data = $this->Contact->findById($id);
}

使用bake shell生成模型/控制器/视图并从该代码中学习。还要检查食谱:http ://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html#editing-posts

于 2013-10-17T14:56:43.633 回答