【发布时间】: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