Получение SQLSTATE [23000]: нарушение ограничения целостности: 1062 Ошибка повторяющегося ввода - PullRequest
0 голосов
/ 30 мая 2019

Я не уверен, откуда эта ошибка.Я не вижу, как это будет пытаться добавить дубликат в мою базу данных.Идеи?Я неправильно называю источник?Я сузил это до того места, где я знаю, что это имеет отношение к разделу подписи.У меня только один столбец в БД для идентификаторов

public function hellosign(Request $request, $id) {
        $auth = $request->user("api");
        if(empty($auth)) return response()->json(['error'=>"No auth user found!"], 401);

        $recruitment = Recruitment::whereId($id)->first();
        if(empty($recruitment)){
            return response()->json(['error' => "Agent not found!"]);
        }

        $email = $recruitment->email;
        if(empty($email)) {
            return response()->json(['error' => "Please provide an email!"]);
        }

        $template = "onboarding_contract";

        Helper::graph("hellosign.create.".$template, 1);
        $client = new HelloSign\Client(config('hellosign.apikey'));
        $sign = new HelloSign\TemplateSignatureRequest;
        if(config('app.env') != "production") $sign->enableTestMode();
        $sign->setTitle("Onboarding Sales Team");
        $sign->setSubject('Please enter your information');
        $sign->setMessage('Please find below the Onboarding Sales Team information for review.');
        $sign->setTemplateId('****************');
        $sign->setSigner('Associate', $recruitment->email, $recruitment->first_name." ".$recruitment->last_name);
        $sign->setCustomFieldValue('rets_id_id_reference', "_".$id."_onboarding");
        $sign->setCustomFieldValue('template', $template);

        // Fields
        $json = [
            // Section 1
            'associate_name'     => $recruitment->name,
            'license'            => $recruitment->license,
            'start_at'           => $recruitment->start_at,
            'commission_agent'   => $recruitment->commission_agent * 100,
            'commission_other'   => $recruitment->commission_other * 100,
            'commission_lead'    => $recruitment->commission_lead * 100,
            // 'eo_coverage'        => "",
        ];

        foreach($json as $field => $value) {
            $sign->setCustomFieldValue($field, $value);
        }

        // Hellosign
        $sign_url = "";
        Trace::log('hellosign_create_onboarding', $json, $id, $auth->id);

        // Save query
        $signature = new Signature;
        $signature->uuid = "_".$id."_onboarding";
        $signature->template = $template;
        $signature->email = $recruitment->email;
        $signature->rets_id = "";
        $signature->id = $id;
        $signature->author_id = (Auth::check() ? Auth::user()->id : null);
        //$signature->reference = $reference;
        $signature->json = json_encode($json);
        $signature->save();

        // Send it
        $response = $client->sendTemplateSignatureRequest($sign);

        return response()->json(['ok']);
    }

1 Ответ

1 голос
/ 30 мая 2019

Удалите $signature->id = $id;, чтобы mysql автоматически добавила уникальный идентификатор

$signature = new Signature;
$signature->uuid = "_".$id."_onboarding";
$signature->template = $template;
$signature->email = $recruitment->email;
$signature->rets_id = "";
$signature->author_id = (Auth::check() ? Auth::user()->id : null);
//$signature->reference = $reference;
$signature->json = json_encode($json);
$signature->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...