2 つのリレーショナル テーブルをリンクするために、次のモデルを作成します。
class Ficha extends AppModel {
//public $useTable = 'ficha_seg';
var $primaryKey = 'id_ficha';
var $name = 'Ficha';
var $belongsTo = array(
'Perigo' => array(
'className' => 'Perigo',
'foreignKey' => false,
'conditions' => 'Perigo.id_fichas = Ficha.id_ficha'
)
);
}
ここで、クラス Ficha からのデータを必要とするフォームがあり、テーブル「Perigos」のデータを入力する別の ctp ページにリダイレクトされます。ただし、私はまだ CakePHP の初心者なので、テーブル "Perigos" にデータを挿入するための 2 番目のフォームを作成するのは困難です。これが、2番目のフォームに関連して現時点で作成したコードです。
FichasController.php (テーブル「Perigos」にデータを保存するメソッド:
public function preencher_ficha(){
if ($this->request->is('ficha')) {
$this->Ficha->create();
if ($this->Ficha->Perigo->save($this->request->data)) {
$last_id=$this->Ficha->getLastInsertID();
$this->Session->setFlash('Your post has been updated '.$last_id.'.');
//$this->redirect(array('action' => 'preencher_ficha'));
} else {
$this->Session->setFlash('Unable to qualquer coisa your post.');
}
}
}
次の形式の preencher_ficha.ctp ファイル:
echo $this->Form->create('Ficha->Perigo', array('action' => 'index'));
echo $this->Form->input('class_subst', array('label' => 'Classificação:'));
echo $this->Form->input('simbolos_perigo', array('label' => 'Símbolos:'));
echo $this->Form->input('frases_r', array('label' => 'Frases:'));
echo $this->Form->end('Finalizar Ficha');
ここでは、作成部分が間違っていると思いますが、コントローラー部分にもエラーがあると思います。