2017-06-27 18 views
0

私は注文のためのデータの提出に取り組んでいます。オーダーには複数のアイテムがあるため、一括挿入する必要があります。データはkeysは、このようなIループので、私のテーブルのカラム名と同じであることをオブジェクトの配列としてフロントエンドから送信され、requestより安全で効率的なデータの一括挿入

enter image description here

$input = $request->all(); 
foreach ($input as $arr) { 
    foreach ($arr as $key => $value) { 
      if (array_key_exists($key, $arr) && !empty($value)) { 
       $data = array($arr); 
      } 
    } 
    DB::table('orders')->insert($data); 
} 

var_dump($input)を保存しています

これは効率的ですか?また、私は現在、安全でないように見えるすべてを要求しています。すべての代わりにprodNameprodDescのような特定のキーだけを要求することは可能ですか?

答えて

2

この場合の効率は、テキストとループを受信して​​いるだけなので、余計なことですが、それは最高でもマイクロ最適化です。また、このループがどのようなパフォーマンスに悪影響を与えるのかを知る方法もありません。ロジックを追加もちろん

$data = [ 
    'prodDesc' => $arr['prodDesc'], 
    'prodName' => $arr['prodName'] 
]; 

は、特定のものを確認するために:あなただけのこれらの2つのキーが必要な場合は、それらの2つのキーからあなたの$データを構築するよう

次に、キーは、あなたのループにアクセスすることができますキーが存在していない場合はエラーが発生します。