Eigenes Model: Wert wird nicht gespeichert


#1

Sorry, dass ich hier mit vermeintlich einfachen Dingen aufschlage, aber es ist leider wirklichwirklich problematisch, dass es keine gescheite OXID-Dokumentation gibt bzw. man diese nur über OXID Academy teuer als Seminar buchen kann.

Wenn ich eine eigene DB-Tabelle erstelle, in diesem Fall

CREATE TABLE `b2karticlevisit` (

oxid char(32) NOT NULL,
oxartnum varchar(255) NOT NULL,
oxtimestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Und diese dann über ein selbst erstelltes Model (in der metadata.php registriert)…

class b2KArticleVisitModel extends MultiLanguageModel
{
protected $_sClassName = ‘b2KArticleVisitModel’;
protected $_sCoreTable = ‘b2karticlevisit’;
protected $_blUseLazyLoading = true;
}

… befülle, landet der Wert der Spalte oxartnum nicht in der Datenbank (oxid und natürlich auch der autogenerierte Timestamp sind befüllt):

        $oArticleVisit = oxNew(b2KArticleVisitModel::class);
    $oArticleVisit->b2karticlevisit__oxartnum->value = new Field(235222);
    $oArticleVisit->save();

Was mache ich falsch?

Dankbare Grüße,
butz79


#2

versuch mal mit

$oArticleVisit->b2karticlevisit__oxartnum = new Field(235222);

#3

Habe ich schon. Aber grundlegend ist die Vorgehensweise doch richtig - oder fehlt da noch was Elementares?


#4

Stimmt schon so, also ohne ->value.


#5

Schonmal so ausprobiert?

// Define array to save
$aInsert[‘oxartnum’] = ‘235222’;
$aInsert[‘beliebigeAndereSpalte’] = ‘Wert anderer Spalten als Beispiel’;

// assign array and save
$oArticleVisit = oxNew(b2KArticleVisitModel::class);
$oArticleVisit->assign($aInsert);
$oArticleVisit->save();


#6

Leider auch schon erfolglos probiert.


#7

Geht aber eigentlich beides, lad doch mal ein (nicht) funktionierendes Beispielmodul hier oder bei Github hoch.