0

私はコントローラの関数の1つでこれを作成しました:

Configure::write('tmpTable', 'table-' .date("dmYHis"));

この後、「tmpTable」を作成した同じコントローラーに投稿要求を表示して送信するようにリダイレクトし、それを読み取ろうとしたときに何も見つかりませんでした。この Configure::read('tmpTable') はただ空です

$GLOBALS[] も使用しようとしましたが、Configure::read() と同じ効果があります

また、$this->Import->setSource() はテーブルを保存しません。彼女と連携するには、常にテーブルを再セットアップする必要があります

コードは次のとおりです。

function index() {
    $tmp = Configure::read('tmpTable');
    if ($tmp != '') {
        $this->Import->setSource(Configure::read('tmpTable'));
        $this->set('rows', $this->Import->find('all'));
    }
}

function printdata() {
    App::import('Vendor', 'parsecsv');

    if ($this->request->is('POST') && !empty($this->request->data)) {

        $csv = new parseCSV($this->request->data['Import']['CsvFile']['tmp_name'], ',');
        $this->set('csv', $csv);
        $this->createTable($csv);
    }
}

function createTable($csv = null) {

    Configure::write('tmpTable', 'table-' . date("d-m-Y-H-i-s"));
    $sql = "CREATE TABLE IF NOT EXISTS  `" . Configure::read('tmpTable') . "` (`id` int(11) NOT NULL AUTO_INCREMENT,";

    foreach ($csv->titles as $value) {
        $sql = $sql . " `" . $value . "` varchar(500) NULL,";
    }

    $sql = $sql . " PRIMARY KEY (`id`));";
    $this->Import->query($sql);
}

function insertdata() {

    $this->Import->setSource(Configure::read('tmpTable'));

    if (!empty($this->request->data)) {
        $this->Import->saveAll($this->request->data['Import']);
    }

    $this->redirect(array('action' => 'index'));
}
4

0 に答える 0