Laravel создал две строки с одинаковым временем создания - PullRequest
0 голосов
/ 07 сентября 2018

Я создал приложение с Laravel, приложение имеет таблицу order, и каждый пользователь может вставить одну строку в эту таблицу за запрос. Я нашел в этой таблице две строки, которые имеют одинаковое время create_at и были созданы одним и тем же пользователем. Как он мог вставить две строки одним запросом? Может ли кто-нибудь дать мне какие-либо советы по проблеме? Спасибо!

У меня есть 2 таблицы, одна - заказ, другая - mt_order, которая принадлежит заказу (ключ foregin - order_id)

Код ниже:

    $orderData['consecutive_count'] = $count =  $user->getLatestConsecutiveCounts();
    $orderData['rate'] = $user->getRate($count);

    $orderData['lot'] = $orderData['base_lot'] * $orderData['rate'];//总手数
    $order = $user->orders()->create($orderData);

$group = $user->group;

    if($group->copy_type == 0)
    {
        if($type == 'buy')
        {
            $orderData['direct'] = 'sell';
        }
        else
        {
            $orderData['direct'] = 'buy';
        }
    }


    $mtorder = $order->mtorder()->create($orderData);
    $order->mt_order = $mtorder;

    return
    [
        'status' => true,
        'data' => $order,
    ];

У меня есть событие для orderCreated, но, похоже, оно ничего не делает , у него нет слушателя.

public $order;
    public function __construct(Order $order)
    {
        if($order->user->group->copy_type == 1)
        {
            $type = $order->direct;
        }
        else
        {
            $type = $order->direct == 'long' ? 'short' :'long';
        }

        $data = [
            'type' => 'exec', 
            'data' =>[
                'laravel_id' => $order->id,
                'MT_order_type' => $type, //多、空
                'MT_open_price' => $order->open_price,
                'MT_open_time' => $order->open_time,
                'MT_take_profit' => $order->take_profit,//(int)
                'MT_stop_loss' => $order->stop_loss,//int
            ],
        ];
        $this->order = $data;
    }

Я запускаю запрос с помощью Ajax, как это

$(".buy-sell a").on('click', function(){
        let url = $(this).data('url');
        bootbox.confirm({
          message:'want to make order?',
          buttons: {
              confirm: {
                  label: 'confirm',
                  className: 'btn-success'
              },
              cancel: {
                  label: 'cancel',
                  className: 'btn-danger'
              }
         },
         callback:function(result){
          if(result == true){
                $.ajax({
                    url:url,
                    type:'post',
                    success:function(data)
                    {
                        if(data.status)
                        {
                            let direct = data.data.direct == 1? '买入' :'卖出';
                            let str = '<ul class="list-inline" style="padding:10px"><li style="font-size:20px; color:#B7B7B7; width:100px">类型</li><li class="position-value">'+direct+'</li></ul> <ul class="list-inline" style="padding:10px"><li style="font-size:20px; color:#B7B7B7; width:100px">入场价格</li><li class="position-value" id="open_price">获取钟</li></ul><ul class="list-inline" style="padding:10px"><li style="font-size:20px; color:#B7B7B7; width:100px">入场时间</li><li class="position-value" id="open_time">获取中</li></ul>';

                            $("#current_position").empty().append(str);
                            $("#notes").remove();
                            view3.clear()
                            initData(0)
                        }
                        else
                        {
                            alert(data.message);
                        }
                    },
                    complete:function(xhr, text)
                    {
                        if(xhr.status == 429)
                        {
                            alert('request too times');
                        }
                    }
                });
         }

       }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...