使用CakePHP在AppModel中保存数据数组

时间:2012-09-13 00:37:58

标签: cakephp cakephp-2.1

我在CakePHP的AppModel中有这个功能(这用于在CakePHP中安装初始数据)但是,我似乎无法保存我的数据,而且没有错误。

这是我在App / Model / AppModel.php中的函数:

public function importData() {
$initialOptionData = array(
array( 'Option' => array( 'name' => 'version', 'value' => '1.0.0', )),
array( 'Option' => array( 'name' => 'site-name', 'value' => 'Site Title', )),
    );
$this->create();
$this->saveMany($initialOptionData);
}

2 个答案:

答案 0 :(得分:2)

从您发布的代码中,您似乎正在尝试将数据保存到options表,为此,您需要使用Option模型。

但是您的代码在AppModel范围内,因此首先导入Option模型,然后执行保存语句。

您的代码应如下所示:

public function importData() {

  $initialOptionData = array(
       array( 'Option' => array( 'name' => 'version', 'value' => '1.0.0', )),
       array( 'Option' => array( 'name' => 'site-name', 'value' => 'Site Title', )),
    );

   App::import('model','Option');  // Import the Option Model
   $Option = new Option();  // create instance of Option class

   // save statements

   $Option->create();
   $Option->saveMany($initialOptionData);

}

注意

如果您在app/model/Option.php文件中写下代码,那么您正在尝试的代码将会有效。

答案 1 :(得分:0)

我认为将值存储为模型属性就足够了。无需致电$this->save...

public $initialOptionData = array(
  array( 'Option' => array( 'name' => 'version', 'value' => '1.0.0', )),
  array( 'Option' => array( 'name' => 'site-name', 'value' => 'Site Title', )),
);

所有模型都将继承initialOptionData ...