0

私は私のケーキコード(cakephpに非常に新しい)に苦労していて、いくつかの助けを求めていました。私のコードの目的は、フォームからデータを取得することです。登録を押すと、データベースにデータが送信されますが、登録を押すと、ページが再読み込みされます。現在、Cake2.0とWampServer2.2を使用しています。

これが私のindividualscontroller.phpからのadd関数のコードです

function addIndividual(){
    if($this->request->is('individuals')){
    {if ($this->Individual->save($this->request->data)) {
            $this->Session->setFlash('The user has been saved');
            $this->redirect(array('action' => 'index'));
        } else {
$this->Session->setFlash('The user could not be saved. Please, try again.');
        }
    }
}

}ここにコード

これが私のadd_individual.ctpからのフォームを含むコードです

   <h2>Please enter your details</h2>
<?php
echo $this->Form->create('individuals', array('action'=>'addIndividual'));
echo $this->Form->input('Title: ');
echo $this->Form->input('First Name: ');
echo $this->Form->input('Surname: ');
echo $this->Form->input('Street Address: ');
echo $this->Form->input('Suburb: ');
echo $this->Form->input('State: ');
echo $this->Form->input('Country: ');
echo $this->Form->input('Email: ');
echo $this->Form->input('Password: ');
echo $this->Form->end('Click here to Register');

?>

編集-データを挿入しようとしているテーブルの名前は個人と呼ばれます助けていただければ幸いです

4

2 に答える 2

1

あなたのコードのエラーは、以下の行にあると思います。

if($this->request->is('individuals'))

ここで$this->request->isリクエスト タイプをチェックし、ここで割り当てましたがindividuals、これはリクエスト タイプではありません。リクエストの種類はpost、「put」、「ajax」、「GET」などです。そのため、フォームのメソッドを確認して、 に入れてください$this->request->is()。次の URL をご覧ください。

http://book.cakephp.org/2.0/en/controllers/request-response.html

于 2012-05-14T06:24:36.417 に答える
0
function addIndividual(){
if($this->request->is('individuals')){
if ($this->Individual->save($this->request->data)) {
        $this->Session->setFlash('The user has been saved');
        $this->redirect(array('action' => 'index'));
    } else {
$this->Session->setFlash('The user could not be saved. Please, try again.');
    }
}
}

このコードを次のように変更します

function addIndividual(){
if($this->request->is('post')){
{if ($this->Individual->save($this->request->data)) {
        $this->Session->setFlash('The user has been saved');
        $this->redirect(array('action' => 'index'));
    } else {
$this->Session->setFlash('The user could not be saved. Please, try again.');
    }
}
}

また、ビューファイルを次のように変更してください。

<h2>Please enter your details</h2>
<?php
echo $this->Form->create('Individual', array('action'=>'addIndividual'));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Title: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'First Name: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Surname: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Street Address: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Suburb: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'State: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Country: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Email: '));
echo $this->Form->input('FieldnameasinDB',array('label'=>'Password: '));
echo $this->Form->end('Click here to Register');

?>

このようにモデルを変更します

<?php class Individual extends AppModel{ var $name='Individual'; 
    public $useTable = 'tableName';
    public $primaryKey = 'userid';} 
于 2012-05-14T06:06:25.350 に答える