2

「デフォルト」ではないデータベースのテーブルに次の形式のデータを挿入しようとしています。しかし、私はそれを行う方法がわかりません、私はまだcakephpに適応しています。フォームは正しく作成されており、データベース上の特定のテーブルの名前が入力に含まれていると思います。しかし、私は彼がどのテーブルを正しく挿入すべきかをどこにも言っていませんか?それは必要ありませんか?または、必要な場合に、必要なテーブルを指定するために何が欠けていますか?

    <?php   echo $this->Form->create('Ficha', array('action' => 'index')); ?>
//echo $this->Form->input('id_fichas', array('label' => 'Id Ficha:'));
echo $this->Form->input('class_subst', array('label' => 'Class mistura:'));
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'); ?>
4

1 に答える 1

1

慣例により、テーブル オブジェクトは、小文字と下線付きのクラス名に一致するテーブルを使用します。あなたの場合、「Ficha」は「fichas」テーブルにマップされます。別のテーブルが必要な場合は、CakePHP のバージョンに基づいて定義する必要があります。

CakePHP 3.x

setTable()メソッドを使用してテーブルを指定できます。

class Example extends Table {

    public function initialize(array $config) {
        $this->setTable('my_table');

        // Prior to 3.4.0 use 'table' method
        // $this->table('my_table');
    }
}

3.x ドキュメントへのリンク

CakePHP 2.x

モデルの属性$useTableは魔法を行います:

<?php
App::uses('AppModel', 'Model');

class Example extends AppModel {
   public $useTable = 'exmp'; // This model uses a database table 'exmp'
} 

2.x ドキュメントへのリンク

于 2012-12-03T14:28:29.117 に答える