2017-01-02 27 views
0

foreachで構文エラーが発生しました。クエリビルダの配列内のforeachを使用しての正しい方法は何ですか、コードは次のように:Laravelのクエリビルダの内部配列foreachを使用する方法

public function postItems(Request $request, $id){ 
    $itemid = \DB::table('items_tables')->where('category_id','=',$id)->get();  

    DB::table('store_items')->insert(
    array('user_id' => \Auth::user()->id, 

     foreach($itemid as $itemids){ 
      'items' => $itemids->name, 
     } 

      'store_id' => $id) 
    ); 

    return view('actions.itemstore'); 
} 

構文エラーが発生したforeachの中で次のように:

Parse error: syntax error, unexpected 'foreach' (T_FOREACH), expecting ')'

$ itemids->名前変数は、数多く持っています値。私はこれをループする必要があります。

+0

真剣に?あなたはエラーを取得していませんか?あなたはforeach($ itemidとして$ itemid){ 'items' => $ itemids-> name、 }と書かれたもののように何かを見たことがありますか? – rahulsm

+0

私はいくつかの変更を加えました。これをチェックしてください。 –

+2

@ JaseelBavuあなたのコードには非常に間違いがあります。誤って構造化された配列で 'insert()'を使用しようとしています。あなたは 'pluck()'の代わりにループを使っています。 DBアーキテクチャが悪いどこでも間違った構文。あなたは本当にLaravelとPHPのドキュメントを読むべきです。これはあなたに多くの時間を節約します。 –

答えて

0

このようなこのhouldを見て何か:

public function postItems(Request $request, $id){ 
    $itemid = \DB::table('items_tables')->where('category_id','=',$id)->get(); 
    foreach($itemid as $itemids) { 
     $data_to_insert = [ 
      'user_id' => \Auth::user()->id, 
      'store_id' => $id, 
      'items' => $itemids 
     ]; 
     DB::table('store_items')->insert($data_to_insert); 
    } 

    return view('actions.itemstore'); 
} 
0

フルLaravelに行きたい場合は、コレクションを使用してそれを書くことができます。

public function postItems(Request $request, $id) 
{ 
    collect(\DB::table('items_tables')->where('category_id','=',$id)->get())->each(function ($item) use ($id) { 
     \DB::table('store_items')->insert([ 
      'user_id' => \Auth::user()->id, 
      'store_id' => $id, 
      'item_name' => $item->name 
     ]); 
    }); 

    return view('actions.itemstore'); 
} 

あなたはLaravel 5.3を使用している場合、あなたはおそらくすることができますcollect()も削除してください。これはDBを使用していてもコレクションを取得するためです。

+0

はまだ同じエラーを表示します –

+0

この行にはエラーが表示されます foreach($ itemidとして$ itemids){ –

+0

はLaravelコレクションを使用して書き換えました。あなたのコラムの名前はわかりませんが、あなたはそれらを知っている必要がありますよね? –