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 的标签不存在,它将被创建。