Mam model Bookshelf.js. Chcę móc ustawić i uzyskać atrybuty dla tego modelu, które nie są trwałe w bazie danych.Zestaw atrybutów bookshelf.js nie znajduje się w bazie danych
Na przykład powiedzmy, że mam model, który wygląda tak:
var Domain = bookshelf.Model.extend({
tableName: 'domains',
initialize: function() {
this.on('creating', this.setDomainName);
},
setDomainName: function() {
this.set('name', getDomainFromUrl(this.url));
}
});
ze schematem, który wygląda tak:
knex.schema.createTable('domains', function (table) {
table.increments().index();
table.text('name').index();
table.timestamps();
});
Chcę być w stanie zaoszczędzić atrybut o nazwie url , a następnie przeanalizować URL w domenie, zanim ją zapisa.
Kiedy próbuję coś takiego:
new Domain({url: 'http://someurl.com/foo/bar'}).save()
otrzymuję komunikat o błędzie:
"column \"url\" of relation \"domains\" does not exist"
szukałem i spojrzał. Nie mogę znaleźć żadnego sposobu dodania nietrwałych atrybutów do modelu bookshelf.js. Nie mogłem też znaleźć niczego na temat dodawania niestandardowych metod pobierania i ustawiania do modelu bookshelf.js.
Każda pomoc lub wgląd jest mile widziany!
OMG, dziękuję! Dokładnie tego potrzebuję. Masz rację, może nigdy nie znalazłem tego, nie wiedząc, jak się nazywają. – nmajor