Eloquent по ошибке сохраняет несколько моделей в базе данных. - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть контроллер, который создает новую модель, а затем передает ее в представление

public function fill_site_form($id, $step_id, $form_id){
    $form = new FormEntry();
    $form->site_id = $id;
    $form->form_id = $form_id;
    $form->step_id = $step_id;
    $form->entry_json = Form::find($form_id)->form_json;
    $form->save();
    return view('sites.fill_site_form', ['form' => $form]);
}

Мне нужно создать только одну запись в БД, но он создает 2 записи каждый раз, когда я иду по этому маршруту.

Я удалил -> сохранить, а затем записи в БД не вставляются.

Есть предложения?

Редактировать:

  1. Изображение записей БД в $ form-> save: ССЫЛКА ИЗОБРАЖЕНИЯ ИЗОБРАЖЕНИЯ

  2. Схема БД:

    Schema::create('form_entries', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('site_id');
        $table->integer('form_id');
        $table->integer('step_id');
        $table->text('entry_json', 600000);
        $table->timestamps();
    });
    
  3. Код, который получает ajax из представления sites.fill_site_form

    public function update_site_ajax($id, Request $request){
        $entry = FormEntry::find($id);
        $entry->entry_json = json_encode($request->form_json);
        $entry->save();
        return $request->all();
    }
    
  4. Код AJAX внешнего интерфейса:

        $('#submit_button').click((e)=>{
            $.ajax({
                type:'PATCH',
                url:'/site/' + document.getElementById('form_id').value,
                data:  {'form_json' : renderer.userData},
    
                success:function(data){
                    $.notify("Form successfully Updated!",
                        {
                            position:"top center",
                            className: 'success'
                        }
                    );
                    console.log('Response: ', data)
                }
    
            });
        });
    

1 Ответ

0 голосов
/ 21 февраля 2019

Я не мог заставить его работать с Model :: create или Model-> save, поэтому я прибегнул к Model :: firstOrCreate, который выглядит более стабильным, но все же хотел бы знать, почему только на этой модели он создает две записи

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