我试图在我的Laravel配方应用程序中实现Select2的功能。我的食谱有一个标签系统。当我去编辑食谱时,我希望当前标签显示在选择字段中。为此,我使用Select2文档中的jQuery。一切似乎都很好,没有错误,但是它没有返回我想要的信息。有人可以看到哪里有错误吗?
控制器
public function edit($id)
{
$recipe = Recipe::find($id);
$tags = Tag::pluck('name', 'id');
return view('recipes.edit')->with('recipe', $recipe)->with('tags', $tags);
}
查看
<fieldset>
<small class="errorMessage"></small>
<label for="tags">Tags</label>
<select class="select2-multi" name="tags[]" id="tagsList" multiple="multiple">
@foreach($tags as $id => $name)
<option value="{{$id}}">{{$name}}</option>
@endforeach
</select>
</fieldset>
jQuery脚本
<script>
$('.select2-multi').select2().val({!! json_encode($recipe->tags()->pluck('tag_id')->toArray()) !!}).trigger('change');
</script>
似乎运行良好,只是没有从数据库返回任何内容。我知道你们前面没有我的数据库表和列,但是我对它们进行了三重检查,所有这些都应匹配。谢谢!