2017-03-17 34 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中的最后一个值.. –

相关问题