2013-10-17 120 views
0

我使用cakePHP v2.4,我試圖自動填寫表單。 我在我的控制器做的是這樣的:如何填寫表格與蛋糕PHP

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

在我看來,我用德表單助手這樣的:

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

我想我的輸入姓名被自動填充我得到的值從我的要求。這是我所得到的,當我在我看來,做PR($數據):

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 
    ) 
) 

正如你所看到的,我有一個表「聯繫我們」,並根據類型,無論是「人」或「公司'我將加載相應的表格。 我不知道我在這裏錯過了什麼,但我還沒有找到答案。

回答

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

+0

完美,我做了$ this-> request-> data = $ this-> Contact-> findById($ id),它的工作原理:)謝謝! – user2688870