Ho un modello Bookshelf.js. Voglio essere in grado di impostare e ottenere attributi per questo modello che non sono persistenti nel database.Attributo set Bookshelf.js non nella banca dati
Per esempio Diciamo che ho un modello che assomiglia a questo:
var Domain = bookshelf.Model.extend({
tableName: 'domains',
initialize: function() {
this.on('creating', this.setDomainName);
},
setDomainName: function() {
this.set('name', getDomainFromUrl(this.url));
}
});
Con uno schema che assomiglia a questo:
knex.schema.createTable('domains', function (table) {
table.increments().index();
table.text('name').index();
table.timestamps();
});
Voglio essere in grado di salvare un attributo denominato url , quindi analizza l'url in un dominio prima di salvarlo.
quando provo qualcosa di simile:
new Domain({url: 'http://someurl.com/foo/bar'}).save()
ricevo il seguente messaggio di errore:
"column \"url\" of relation \"domains\" does not exist"
Ho guardato e guardato. Non riesco a trovare alcun modo per aggiungere attributi non persistenti a un modello bookshelf.js. Inoltre, non sono riuscito a trovare nulla sull'aggiunta di metodi getter e setter personalizzati a un modello bookshelf.js.
Qualsiasi aiuto o intuizione è apprezzato!
OMG, grazie! Questo è esattamente ciò di cui ho bisogno. Hai ragione, potrei non averlo mai trovato senza sapere come sono chiamati. – nmajor