1

I'm trying to make a insert using Lucid Models.

So, first i define my model in a const:

const ClasseLivroHistorico = use('App/Models/ClassBookHistoric')

This is my function that needs to create a new record:

async cadastraPrimeiroHistorico(classeId, bookUnitId, bookId){
    const primeiroClasseLivroHistorico = new ClasseLivroHistorico()
    primeiroClasseLivroHistorico.class_id = classeId;
    primeiroClasseLivroHistorico.book_unit_id = bookUnitId
    primeiroClasseLivroHistorico.book_id = bookId
    primeiroClasseLivroHistorico.status = false
    primeiroClasseLivroHistorico.created_at = new Date()
    primeiroClasseLivroHistorico.book_unit_sequence = 1
    await ClasseLivroHistorico.create(primeiroClasseLivroHistorico)

}

But i'm getting:

insert into "xxx" ("$attributes", "$frozen", "$hidden", "$originalAttributes", "$parent", "$persisted", "$relations", "$sideLoaded", "$visible", "setters", "created_at", "updated_at") values ($1, $2, DEFAULT, $3, $4, $5, $6, $7, DEFAULT, $8, $9, $10) returning "id" - column "$attributes" of relation "xxx" does not exist"

I'm not using .save() because this return true/false and i need to return the created record

bla
  • 667
  • 4
  • 19

1 Answers1

1

When you use new instance of ClasseLivroHistorico object you need to use save() method. Like:

const primeiroClasseLivroHistorico = new ClasseLivroHistorico()
...
await primeiroClasseLivroHistorico.save()

return primeiroClasseLivroHistorico

or

If you want to use create() method you have to give it the information in an array. Like:

let data = { class_id: classeId, ... }

const primeiroClasseLivroHistorico = await ClasseLivroHistorico.create(data)

Don't hesitate if you need more information

crbast
  • 1,750
  • 1
  • 7
  • 16