在提交到数据库之前返回字段

时间:2015-03-26 15:52:35

标签: php laravel laravel-5

我正在使用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中实现吗?

1 个答案:

答案 0 :(得分:2)

您可能可以使用firstOrCreate ...

foreach($data as $newTag) {

    $temp = Tag::firstOrCreate(array('tag_title'=>$newTag));

}

...所以如果一个标签没有tag_title,那么它就会被创建。