cakephp插入不同的表

时间:2012-12-03 11:50:31

标签: php database forms cakephp

我正在尝试将以下表单的数据插入到不是“默认”数据库的数据库表中。但是,我不知道该怎么做,我仍然适应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'); ?>

1 个答案:

答案 0 :(得分: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 docs

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 docs