将唯一值存储到数据库中 laravel 4.2


Store a unique value into database laravel 4.2

如何存储唯一$payment->transaction_id = Input::get('transact');不应再用相同编号存储transaction_id

请建议我。

public function ddclback()
    {
        if(Input::get('statuscode') == 2){
            //Save data into the Database
            $payment                     = new Payment;
            $payment->order_id           = Input::get('orderid');
            $payment->amount             = (Input::get('base_amount', 0))?Input::get('base_amount'):Input::get('amount');
            $payment->amount             = $payment->amount/100;
            $payment->cc_fee             = Input::get('processing_fee', 0);
            $payment->payment_type       = 'CCD-'.Input::get('currency');
            $payment->currency           = Input::get('currency');
            $payment->exchange_rate      = $this->getExchangeRate( Input::get('currency') );
            $payment->gateway            = 'DIBS';
            $payment->payment_date       = date('Y-m-d'); //'Carbon'Carbon::today()->toDateString();
            $payment->card_type          = Input::get('paytype');
            $payment->transaction_id     = Input::get('transact');
            $payment->customer_ip        = $_SERVER['REMOTE_ADDR'];
            $payment->save();
            Order::ccid(Input::get('orderid'));
            Order::upord(Input::get('orderid'));
        }
    }

在将记录插入数据库之前,您应该检查 where 子句。

尝试以下代码:

public function ddclback() {
    if (Input::get('statuscode') == 2) {
        $exist = $this->checkExist(Input::get('orderid'), Input::get('transact')); // check if exist it will return true/ false
        if (!$exist) {
            //Save data into the Database if not exist
            $payment = new Payment;
            $payment->order_id = Input::get('orderid');
            $payment->amount = (Input::get('base_amount', 0)) ? Input::get('base_amount') : Input::get('amount');
            $payment->amount = $payment->amount / 100;
            $payment->cc_fee = Input::get('processing_fee', 0);
            $payment->payment_type = 'CCD-' . Input::get('currency');
            $payment->currency = Input::get('currency');
            $payment->exchange_rate = $this->getExchangeRate(Input::get('currency'));
            $payment->gateway = 'DIBS';
            $payment->payment_date = date('Y-m-d'); //'Carbon'Carbon::today()->toDateString();
            $payment->card_type = Input::get('paytype');
            $payment->transaction_id = Input::get('transact');
            $payment->customer_ip = $_SERVER['REMOTE_ADDR'];
            $payment->save();
            Order::ccid(Input::get('orderid'));
            Order::upord(Input::get('orderid'));
        }
    }
}  
public function checkExist($orderId, $transactionId) {
    $existRecord = Payment::where('order_id', $orderId)->where('transaction_id', $transactionId)->get()->toArray();
    if ($existRecord) {
        return true;
    } else {
        return false;
    }
}