私はコントローラの関数の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'));
}