【问题标题】:How to merge exists data with new data?如何将现有数据与新数据合并?
【发布时间】:2019-04-08 08:44:24
【问题描述】:

方法一:这里我写了将预订座位数据插入数据库的代码

问题:当我预订新座位时,它会创建新行,所以我得到重复的行,所以我尝试了方法 2

方法一代码:

$booking = new Bookings();
        $booking->users_id = 4;
        $booking->schedules_id = $schedules_id;
        $booking->buses_id = $buses_id;
        $booking->routes_id = $routes_id;
        $booking->seat = implode(',', $seat);
        $booking->price = $request->price;
        $booking->profile = 'pending';

方法二:这里检查schedules_id等于存在schedules_id然后更新座位和其他数据的

问题:插入新数据更新旧数据

方法二代码:

$booking = Bookings::updateOrCreate(
    ['schedules_id' => $schedules_id], // match the row based on this array
    [ // update this columns
        'buses_id' => $buses_id,
        'routes_id' => $routes_id,
        'seat' => json_encode($seat),
        'price' => $request->price,
        'profile' => 'pending',
    ]

);

//我不知道这在逻辑上是对还是错

我的想法:我在这里检索旧数据并存储到一个变量中,然后将旧数据和新数据合并到一列中

问题:出现错误。

我的想法代码:

$extSeat = DB::table('bookings')->select('seat')->get();
        $booking = Bookings::updateOrCreate(
           ['schedules_id' => $schedules_id],
           [ // update this columns
              'buses_id' => $buses_id,
              'routes_id' => $routes_id,
              'seat' => implode(",", array_merge($seat,$extSeat)),
              'price' => $request->price,
              'profile' => 'pending',
           ]);

我真正需要什么? :我需要将现有数据与新数据合并而不更新。

旧数据看起来像A1,B1
当插入像C1这样的新数据时
我需要这样的数据A1,B1,C1

我希望我解释得足够清楚。任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 为什么不在座位字段上使用关系?
  • @stUrb 先生,你能解释清楚吗?

标签: php laravel


【解决方案1】:

我不知道这是不是一个正确的逻辑,但对我有用,欢迎任何其他建议。

    $extSeat = DB::table('bookings')->select('seat')->first();
    $extSeat = explode(",", $extSeat->seat);
    $booking = Bookings::updateOrCreate(
       ['schedules_id' => $schedules_id],
       [ // update this columns
          'buses_id' => $buses_id,
          'routes_id' => $routes_id,
          'seat' => implode(",", array_merge($seat,$extSeat )),
          'price' => $request->price,
          'profile' => 'pending',
       ]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2019-06-13
    相关资源
    最近更新 更多