【问题标题】:tag-it input store only last value in DB laravel 5.4tag-it 输入仅存储 DB laravel 5.4 中的最后一个值
【发布时间】:2017-03-17 07:02:13
【问题描述】:

我正在使用 Jquery Tag-it。当我将 tag-it 值传递给控制器​​并通过 var_dump() 进行检查时;所有值都完美发布,但问题是当它传递给数据库时,它将仅存储最后一个值 ..请帮帮我

<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,

                ]);
            }
        }

【问题讨论】:

  • 这是因为 foreach 循环而发生的。但是在没有看到你使用的数据结构和关系的情况下,如何解决这个问题还不清楚。此外,为了保存标签,您通常希望使用多对多关系。
  • ok.. 但请解释一下如何在用户和愿望清单标签之间创建多对多关系?
  • 您应该创建一个数据透视表和两个belongsToMany() 关系。 laravel.com/docs/5.4/eloquent-relationships#many-to-many - 之后使用 sync() 方法同步标签。 laravel.com/docs/5.4/…

标签: jquery laravel laravel-5.4 tag-it


【解决方案1】:

试试这个:

$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,
          ]);
       }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2022-01-25
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多