Return 在提交到数据库之前获取字段
Return taken fields before submitting to the database
我正在使用 Laravel 5。以下类别的用户输入以逗号分隔值 returned。商业、家庭维修、地板。
// 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 已经存在于 table 中,它必须是唯一的并且造成了明显的限制,从而阻止了任何接下来的代码失败。
我怎样才能先测试看看这些 categories/tags 中的任何一个是否被占用,然后 return 在添加新标签时被占用给用户?
或者在我看来,更好的方法是检查记录并只插入 table 中尚不存在的新记录。看起来干净多了。 Laravel能实现吗?
您可能可以使用 firstOrCreate...
foreach($data as $newTag) {
$temp = Tag::firstOrCreate(array('tag_title'=>$newTag));
}
...所以如果带有 tag_title 的标签不存在,它将被创建。
我正在使用 Laravel 5。以下类别的用户输入以逗号分隔值 returned。商业、家庭维修、地板。
// 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 已经存在于 table 中,它必须是唯一的并且造成了明显的限制,从而阻止了任何接下来的代码失败。
我怎样才能先测试看看这些 categories/tags 中的任何一个是否被占用,然后 return 在添加新标签时被占用给用户?
或者在我看来,更好的方法是检查记录并只插入 table 中尚不存在的新记录。看起来干净多了。 Laravel能实现吗?
您可能可以使用 firstOrCreate...
foreach($data as $newTag) {
$temp = Tag::firstOrCreate(array('tag_title'=>$newTag));
}
...所以如果带有 tag_title 的标签不存在,它将被创建。