2017-03-17 2 views
0

私はJquery Tag-itを使用しています。 tag-itをコントローラに渡し、var_dump()でチェックします。すべての値は、完全に投稿し、それが通過するときの問題は、私はそれが店だけ最後の値が..アウト私を助けてくださいますDBへのことtag-it入力はDB内の最後の値のみを格納します。laravel 5.4

<input type="text" value="" data-role="tagsinput" id="tags" name="wish-tags" class="form-control">

コントローラ

$wishlist = Wishlist::firstOrNew(['user_id' => Auth::user()->id]); 
     if (!empty($wishlist)) { 
      $locations = $request->input('wish-tags'); 
      //var_dump($locations); exit(); 
      foreach (explode(",", $locations) as $location) { 

       $wishlist->update([ 
        'user_id' => Auth::user()->id, 
        'locations' => $location, 

       ]); 
      } 
     } 
+0

これはforeachループが原因で発生します。しかし、あなたが使用するデータ構造や関係を見ずにこれを解決する方法は不明です。また、タグを保存するために、通常は多対多の関係を使用します。 –

+0

ok ..しかし、ユーザーとウィッシュリストのタグの間に多対多の関係を作成する方法を説明してください。 –

+0

ピボットテーブルと2つの 'belongsToMany()'関係を作成する必要があります。 https://laravel.com/docs/5.4/eloquent-relationships#many-to-many - その後、タグを同期するために 'sync()'メソッドを使用します。 https://laravel.com/docs/5.4/eloquent-relationships#updating-many-to-many-relationships –

答えて

0

試用:

$locations = $request->input('wish-tags'); 
//var_dump($locations); exit(); 
foreach (explode(",", $locations) as $location) { 
$wishlist = Wishlist::firstOrNew(['user_id' => Auth::user()->id, 'locations' => $location ]); 
     if (!empty($wishlist)) { 
      $wishlist->update([ 
      'user_id' => Auth::user()->id, 
      'locations' => $location, 
      ]); 
     } 
} 
+0

通常通りDBに保存された最後の値.. –

関連する問題