【问题标题】:How to avoid duplicate entry in database using insert in Laravel?如何在 Laravel 中使用 insert 避免重复输入数据库?
【发布时间】:2017-05-08 08:06:17
【问题描述】:

嗨,我在 Laravel 4.2 版本中开发了我的项目,我有一个记录数组,我想使用内置的 insert() 函数将此数据插入数据库,但我想更新那些已经插入的条目,否则插入记录。谁能帮我 这是我的示例代码

public static function followAllUsers($user_data) {
  $responce = array();
  $data = array();
  foreach ($user_data['following_id'] as $key => $value) {
    $following = UserBussinessLogic::checkAndValidateUser($value);
    if ($following != true) {
      $responce = Utility::Responce('invalid_user', FALSE, $value);
      break;
    } else {
      if (FriendBussinessLogic::isAlreadyFollowed($user_data['id'], $value)) {
        continue;
      }
      $data[] = array('follower_id' => $user_data['id'], 'following_id' => $value, 'created_at' => date('Y-m-d H:i:s'));
      $followData['notifyAbleUsers'][] = $value;
    }
  }
  if ($following) {
    if (!empty($data)) {
      if (Friend::insert($data)) {
        $followData['created_at'] = date('Y-m-d H:i:s');
        $followData['follower_id'] = $user_data['id'];
        $responce = Utility::Responce('friend_followed', TRUE, $followData);
      } else {
        $responce = Utility::Responce('general_error', FALSE);
      }
    } else {
      $responce = Utility::Responce('already_followed', TRUE);
    }
  }

  return $responce;
}

谢谢

【问题讨论】:

  • 发布您的数据库架构和代码
  • 发布您的代码和数据库以及您不想插入的数据

标签: php laravel


【解决方案1】:

Laravel 4.2 中还有一个鲜为人知的功能是: updateOrCreate

这是一个如何使用它的示例:

// If there's a flight from Oakland to San Diego, set the price to $99.
// If no matching model exists, create one.

$flight = App\Flight::updateOrCreate(
    ['departure' => 'Oakland', 'destination' => 'San Diego'],
    ['price' => 99]
);

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多