我有一个输入,打算以以下方式写入图像标签:
Tag1, Tag2, Tag3
然后创建一个数组,我可以使用explode()PHP函数像这样循环遍历:
$tagsRaw = $request['artwork-tags'];
$tags = explode(',', $tagsRaw);
foreach($tags as $tag) {
$tag = new Tag();
$tag->name = $tag;
$tag->save();
$image->tags()->attach($tag);
}
可悲的是我遇到了这个错误:
类型错误:参数1传递给 Illuminate \ Database \ Grammar :: parameterize()必须为数组类型, 给定的字符串,称为 C:\ MAMP \ htdocs \ Art \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Grammars \ Grammar.php 在第681行◀
我假设我正在尝试爆炸()无法爆炸的东西,并且我没有将字符串传递给explode()。
答案 0 :(得分:3)
您正在立即覆盖$tag
变量。
$tagsRaw = $request['artwork-tags'];
$tags = explode(',', $tagsRaw);
foreach($tags as $tagName) {
$tag = new Tag();
$tag->name = $tagName;
$tag->save();
$image->tags()->attach($tag);
}