我正在使用 Laravel 5。以下用户输入的类别将以逗号分隔值的形式返回。商业、家庭维修、地板。
// Insert tile tags
$data = array();
$tag_title = $request->tag_title;
$data = explode(',', $tag_title);
foreach($data as $newTag) {
$tag = new Tag;
$tag->tag_title = $newTag;
$tag->save();
}
问题是,第二个类别 home-repair 已经存在于表中,该类别要求唯一,并且导致明显的约束,从而防止后续的任何代码失败。
如何首先测试是否有任何类别/标签被采用,然后返回给添加新标签时被采用的用户?
或者在我看来,更好的方法是检查记录并仅插入表中尚不存在的新记录。看起来干净很多。这可以在 Laravel 中实现吗?
最佳答案
您可能可以使用firstOrCreate...
foreach($data as $newTag) {
$temp = Tag::firstOrCreate(array('tag_title'=>$newTag));
}
...因此,如果带有 tag_title 的标签尚不存在,则会创建它。
关于php - 在提交到数据库之前返回已获取的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283068/