CakePHP的Utils插件没有将记录插入表中

时间:2013-03-02 15:28:53

标签: cakephp

我在此链接上使用CakePHP的Utils插件 - https://github.com/CakeDC/utils。然而,我现在遇到的问题是,当我上传csv时,它使用setFlash从我的csv计算正确的记录数,例如(从test.csv成功导入3条记录),但不会将任何记录插入数据库。有没有人知道可能导致这种情况的原因。我没有改变提供的链接。

这是我到目前为止采取的步骤。在我的Appmodel中,我添加了以下代码

public $actsAs = array(
    'Utils.CsvImport' => array(
        'delimiter'  => ','
    )
);

在app / View / Common中创建一个名为Common的共享视图,并添加共享的import.ctp视图,代码如下

<h3>Import <?php echo Inflector::pluralize($modelClass);?> from CSV data file</h3>
<?php
echo $this->Form->create($modelClass, array('action' => 'import', 'type' => 'file') );
echo $this->Form->input('CsvFile', array('label'=>'','type'=>'file') );
echo $this->Form->end('Submit');
?>

这是我对AppController的导入操作

/**
* CSV Import functionality for all controllers
*    
*/
function import() {
    $modelClass = $this->modelClass;
    if ( $this->request->is('POST') ) {
        $records_count = $this->$modelClass->find( 'count' );
        try {
            $this->$modelClass->importCSV( $this->request->data[$modelClass]['CsvFile']['tmp_name']  );
        } catch (Exception $e) {
            $import_errors = $this->$modelClass->getImportErrors();
            $this->set( 'import_errors', $import_errors );
            $this->Session->setFlash( __('Error Importing') . ' ' . $this->request->data[$modelClass]['CsvFile']['name'] . ', ' . __('column name mismatch.')  );
            $this->redirect( array('action'=>'import') );
        }

        $new_records_count = $this->$modelClass->find( 'count' ) - $records_count;
        $this->Session->setFlash(__('Successfully imported') . ' ' . $new_records_count .  ' records from ' . $this->request->data[$modelClass]['CsvFile']['name'] );
        $this->redirect( array('action'=>'index') );
    }
    $this->set('modelClass', $modelClass );
    $this->render('../Common/import');
} //end import()

上传文档我的应用程序指向控制器操作,例如localhost / test / employees / import

提前致谢

0 个答案:

没有答案