やりたい事: controllerからviewに渡ってきた複数の連想配列data1、data2、data3を、csv生成の為に、そのまま再度controllerの別のメソッドに渡したい
controller
php
1public function index(Request $request){ 2 $inputs = $request->all(); 3 // 省略(データ整形) 4 return view('hoge.index', compact('data1', 'data2', 'data3')); 5}
view
HTML
1@foreach($data1 as $data) 2 // 省略($data1, $data2, $data3を使って表示) 3@endforeach 4 5// $data1, $data2, $data3をcontrollerのcsvダウンロード用のメソッドに送りたい 6<button type="button" value="送信" class="btn btn-success">CSVダウンロード</button>
試した事① onclick="location.href=''"で渡そうとした
HTML
1<button type="button" value="送信" class="btn btn-success" onclick="location.href='{{ action('HogeController@download'), [$data1, $data2, $data3] }}'">ダウンロード</button>
エラー↓
Facade\Ignition\Exceptions\ViewException
htmlspecialchars() expects parameter 4 to be bool, array given
試した事② LaravelCollectiveのactionで渡そうとした
HTML
1{!! Form::open(['method'=>'POST', 'action'=>['HogeController@download', $data1, $data2, $data3] ]) !!} 2 {!! Form::submit('ダウンロード',['class'=>'btn btn-success', 'name'=>'csv']) !!} 3{!! Form::close() !!}
エラー↓
Array to string conversion (View: /home////resources/views////index.blade.php)
試した事③ Controllerに$data1, $data2, $data3のデータ整形に必要なデータをhiddenで渡し、controllerのcsv生成のメソッドで再度$data1, $data2, $data3を生成
HTML
1{!! Form::open(['method'=>'POST', 'action'=>['HogeController@download'] ]) !!} 2 <input type="hidden" name="foo1" value="{{ $inputs['hoge1'] }}"> 3 <input type="hidden" name="foo2" value="{{ $inputs['hoge2'] }}"> 4 {!! Form::submit('ダウンロード',['class'=>'btn btn-success', 'name'=>'csv']) !!} 5 {!! Form::close() !!}
エラーなし。
ただし、csv生成のメソッドで再度hiddenの値を元に$data1, $data2, $data3を整形しなければならない為、できれば重複せずに、bladeからそのまま$data1, $data2, $data3を渡したいのですが可能でしょうか?
前提の知識として多数不足している箇所があるかもしれず恐縮ですが、宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/19 01:13