###発生している問題・エラーメッセージ
exportアクションの引数$searchList
が検索結果ではなく、全てを取得してしまいます。検索結果をexportアクションに持っていきたいのですが、どのように書いたら良いのでしょうか。
###該当のソースコード
PHP
1public function index() 2 { 3 $query = $this->Dbackorders->find(); 4 5 if($this->request->is('get')){ 6 $request = $this->request->query; 7 $freeword_str = isset($request['freeword']) && $request['freeword'] !== '' ? $request['freeword'] : FALSE; 8 9 if(isset($freeword_str) && $freeword_str !== FALSE){ 10 $fileds = ['カラム名','カラム名']; 11 12 $arr = []; 13 foreach ($fileds as $filed) { 14 $key = sprintf('%s LIKE', $filed); 15 $val = "%{$freeword_str}%"; 16 $arr[$key] = $val; 17 } 18 19 $query->where([ 20 'OR' => $arr 21 ]); 22 } 23 24 //CSV出力がクリックされた場合は検索結果を持ってる$queryを引数にexport()アクションへ 25 if($this->request->query('csv') === 'export'){ 26 $searchList = $query->hydrate(false)->toArray(); 27 $this->setAction('export',$searchList); 28 } 29 30 $dbackorders = $this->paginate($query); 31 $this->set('CheckBox', Configure::read('CheckBox')); 32 $this->set(compact('dbackorders')); 33 $this->set('_serialize', ['dbackorders']); 34 $this->set('title', 'テスト'); 35 } 36 37 public function export($searchList){ 38 39 $Export_Table = TableRegistry::get('Export_Dbackorders'); 40 $clumns = $Export_Table->find('all')->combine('value','name')->toArray(); 41 42 if($this->request->is('post')){ 43 44 $request = $this->request->data; 45 $select_clumns = isset($request['select_clumns']) && $request['select_clumns'] !== '' ? $request['select_clumns'] : FALSE; 46 47 stream_filter_register('eolFilter', 'App\\Filters\\CsvEolFilterHelper'); 48 stream_filter_register('encodeFilter', 'App\\Filters\\CsvEncodeFilterHelper'); 49 50 $results = $searchList; 51 52 $fp = fopen('php://output', 'w'); 53 54 // フィルタを開いたストリームに付加する 55 stream_filter_append($fp, 'eolFilter'); 56 stream_filter_append($fp, 'encodeFilter'); 57 58 // ダウンロードさせる 59 header('Content-Type: text/csv'); 60 header('Content-Disposition: attachment; filename="テスト.csv"'); 61 62 include ('../config/myconf/csvExport/Dbackorders.php'); 63 64 $this->autoRender = false; 65 66 //////////////////////////////////////////////////////////// 67 //fclose — オープンされたファイルポインタをクローズする 68 //////////////////////////////////////////////////////////// 69 70 fclose($fp); 71 } 72 $this->set('clumns', $clumns); 73 $this->set('title', 'CSVエクスポート'); 74 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/22 02:47