2017-08-03 26 views
0

私は現在、このコードを持っているし、今私はそれは、ユーザが選択した内容に基づいて動作するように作るのいくつかの助けが必要になります。選択した値に基づいてデータを取得するにはどうすればよいですか?

public function downloadResponse(Request $request) 
{ 

    $inputs = $request->input(); 
    $eType = $inputs['chapter_category']; 

    Excel::create('Export data', function($excel,$eType) 
    { 
     $excel->sheet('Sheet 1', function($sheet) 
     { 
      $products = Dialog::where('eType', 'claim_type')->get();; 
      foreach($products as $product) 
      { 
       $data[] = array(
        $product->eType, 
        $product->eVal, 
        $product->intent, 
        $product->reply, 
       ); 
      } 
      $sheet->fromArray($data, null, 'A1', false, false); 
      $headings = array('Entity Type', 'Entity Value', 'Intent', 'Reply'); 
      $sheet->prependRow(1, $headings); 
     }); 
    })->export('csv'); 

} 

このラインI持っているハードコード付きそれ:

$products = Dialog::where('eType', 'claim_type')->get(); 

だから私は$eTypeを取得し、 'claim_type' でそれを置き換える方法を教えてください。私はまっすぐに置く場合は、以下のようなエラーが発生します。

Type error: Too few arguments to function App\Http\Controllers\xxxx\xxxx\xxxx::App\Http\Controllers\xxx\xxxx{closure}(), 1 passed and exactly 2 expected

答えて

0

私はあなたがあなたのダイアログのテーブルに持っているものフィールド名わからないんだけど、...

$製品=ダイアログ::どこ(」 eType '、$ eType) - > get();

または

$製品=ダイアログ::どこ( 'claim_type'、$ ETYPE) - >()を取得。

+0

ETYPEは、列名..です –

関連する問題