O armazenamento de dados na tabela de base de dados pivô Laravel

Joe Leeson:

Eu tenho duas tabelas com um relacionamento muitos-para-muitos que são unidos por esta tabela abaixo

digite descrição da imagem aqui

Eu estou usando o método loja abaixo dentro do meu controlador, mas quando chamado a devolver um erro: Integridade violação de restrição: 1048 Coluna 'thought_journal_entry_id' não pode ser nulo (SQL: INSERT INTO thought_journal_entry_emotions( emotion_id, thought_journal_entry_id?) Valores (1,))

Eu entendo que não há nenhum id para o thought_journal_entry_id, mas não tenho certeza de como encontrá-lo. Ao tentar $entry = ThoughtJournalEntry::find(1)ele funciona, mas eu preciso para armazenar dados para novas instâncias do ThoughtJournalEntry $entry = new ThoughtJournalEntryComo posso fazer isso?

public function store(Request $request)
    {
        $this->validate($request, [
            'thought_entry' => 'required'
        ]);

        $entry = new ThoughtJournalEntry;
        $entry->user_id = auth()->user()->id;
        $entry['entry_date'] = date('Y-m-d H:i');
        $entry->thought = $request->input('thought_entry');
        $emotions = $request->has('emotions') ? $request->get('emotions') : [];
        $emotions2 = Emotions::find($emotions);
        $entry->emotions()->sync($emotions2);
        $entry->tt_id = $request->has('thinking_traps') ? $request->get('thinking_traps') : [];
        $entry->balanced_thought = $request->input('balanced_thought');
        $entry->save();

        return redirect('/dashboard');
    }
lizeshakya:

Você precisa primeiro salvar o ThoughtJournalEntry $entrymodelo, a fim de obter o id. E depois sincronizar as emoções para a entrada

public function store(Request $request)
    {
        $this->validate($request, [
            'thought_entry' => 'required'
        ]);

        $entry = new ThoughtJournalEntry;
        $entry->user_id = auth()->user()->id;
        $entry['entry_date'] = date('Y-m-d H:i');
        $entry->thought = $request->input('thought_entry');
        $emotions = $request->has('emotions') ? $request->get('emotions') : [];

        $entry->tt_id = $request->has('thinking_traps') ? $request->get('thinking_traps') : [];
        $entry->balanced_thought = $request->input('balanced_thought');
        $entry->save();

        $emotions2 = Emotions::find($emotions);
        $entry->emotions()->sync($emotions2);

        return redirect('/dashboard');
    }

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=275181&siteId=1
Recomendado
Clasificación