Transid 应该是 Laravel Check 中的唯一存储(值 transid 应该是单个存储)


transid should be unique store in laravel check (value transid should be single store)

我很困惑如何在 laravel 中存储唯一值,我只想存储单个值transaction_id那里不应该有多个值。

            $payment                     = new Payment;
            $payment->order_id           = Input::get('orderid');
            $payment->amount             = (Input::get('base_amount', 0))?Input::get('base_amount'):Input::get('amount');
            $payment->transaction_id     = Input::get('transact');
            how to check if this $payment->transaction_id already exists should not save more than one
            i tried 
            $payment = Payment::where('transaction_id', '=', Input::get('transaction_id'))->first();
            if ($payment === null) {
               $payment->save();
            }

您可以使用请求验证:

public function rules()
{
    return [
        'transaction_id' => 'unique'
    ];
}

如果使用此方法,则应使用 php artisan make:request MyRequest 命令创建新的 Request 类。然后将rules()放入创建的MyRequest中,然后您可以在 RESTful 控制器中的存储/更新操作(函数)旁边使用它:

public function store(MyRequest $request)
{
    dd($request->all());
}

https://laravel.com/docs/5.2/validation

此外,还可以在模型中使用验证:

private $rules = [
    'transaction_id' => 'required'
    ];