php - 在提交到数据库之前返回已获取的字段

标签 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 中实现吗?

最佳答案

您可能可以使用firstOrCreate...

foreach($data as $newTag) {

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

}

...因此,如果带有 tag_title 的标签尚不存在,则会创建它。

关于php - 在提交到数据库之前返回已获取的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283068/

相关文章:

php - Laravel 如何在查询结果中添加新字段

javascript - 如何在 laravel 项目中挂载 riot 标签

php - Eloquent groupBy 在 Laravel 5.3 中使用有效的 SQL 查询生成 "SQLSTATE[42000]"

PHP - 将资源从 PHP 推送到嵌套不同资源/星期几的 JSON 时出错

mysql - Not Acceptable 在此服务器上找不到所请求资源的适当表示。此错误是由 Mod_Security 生成的

php - 关于Yii2 RBAC的疑惑

Laravel 访问模型属性

php - Forge 不读取我的 Laravel 5 环境变量

PHP 星期几数字到星期几文本

php - 保存检索到的数据