2017-03-17 70 views
0

我正在使用Jquery Tag-it。當我傳遞標籤 - 它的值給控制器並通過var_dump()檢查它;所有的值完全後,但這個問題我是當它傳遞到DB將店只有最後一個值 ..請幫我出tag-it輸入只存儲數據庫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

好的..但請解釋如何在用戶和Wishlist標籤之間創建多對多的關係? –

+0

您應該創建一個數據透視表和兩個'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中的最後一個值.. –

相關問題