Ich habe ein Bookshelf.js-Modell. Ich möchte Attribute für dieses Modell festlegen und abrufen können, die in der Datenbank nicht persistent sind.Bookshelf.js Set-Attribut nicht in der Datenbank
Zum Beispiel kann sagen, dass ich ein Modell, das wie folgt aussieht:
var Domain = bookshelf.Model.extend({
tableName: 'domains',
initialize: function() {
this.on('creating', this.setDomainName);
},
setDomainName: function() {
this.set('name', getDomainFromUrl(this.url));
}
});
Mit einem Schema, das wie folgt aussieht:
knex.schema.createTable('domains', function (table) {
table.increments().index();
table.text('name').index();
table.timestamps();
});
Ich möchte in der Lage sein, ein Attribut zu speichern url genannt , dann parse die URL vor dem Speichern in eine Domäne.
Wenn ich versuche, so etwas wie diese:
new Domain({url: 'http://someurl.com/foo/bar'}).save()
erhalte ich die Fehlermeldung:
"column \"url\" of relation \"domains\" does not exist"
ich habe gesucht und gesucht. Ich kann keine Möglichkeit finden, einem bookshelf.js-Modell nicht persistente Attribute hinzuzufügen. Ich konnte auch nichts über das Hinzufügen von benutzerdefinierten Getter- und Setter-Methoden zu einem bookshelf.js-Modell finden.
Jede Hilfe oder Einsicht ist willkommen!
OMG, danke! Das ist genau das, was ich brauche. Du hast recht, ich habe es vielleicht nie gefunden, ohne zu wissen, wie sie heißen. – nmajor