Eigenes Model - load bringt mir nur die OXID

Hey - ich habe ein Model und rufe dieses im Code per load() auf.

Der Debugger zeigt mir nun ein Objekt an, mit dem Feld OXID und der jeweiligen OXID des Eintrages, jedoch nicht die restlichen Felder der Tabelle.

Das Model erweitert oxBase, habe aber auch oxI18n versucht.

Muss hierfür eine View vorliegen?

In einem OXID-Beitrag habe ich gelesen, dass oxBase womöglich ausschließlich die OXID beim load() zurückgibt.

Weiterhin wundere ich mich über die Views - ergeben diese nicht Sinn bei mehrsprachigen Tabellen? Sollte ich die tatsächlich für eine Tabelle benötigen, welche nicht mehrsprachig ist?

Grüße

Ohne Quelltext ist das schwierig. Artikel in Datenbank eintragen aus Modul

Ich denke das liegt am lazyloading und die restlichen Felder werden bei Bedarf geladen.
Views werden nur für Mehrsprachigkeit benötigt.

Hallo - der Aufruf des Models folgt wie folgt:
$oESY_myprojects_userprojectitems = oxNew(‘esy_myprojects_userprojectitems’);
if ($oESY_myprojects_userprojectitems->load($oItemContent[‘OXID’])) {
$oESY_myprojects_userprojectitems->setAmount($dAmount, false);
$oESY_myprojects_userprojectitems->save();
}

Das Model gestaltet sich wie folgt:

class esy_myprojects_userprojectitems extends oxBase
{
protected $_sClassName = ‘esy_myprojects_userprojectitems’;

protected $_sCoreTable = 'esy_myprojects_userprojectitems';

protected $_blUseLazyLoading = false;

public function load($oxID)
{
    $aData = $this->_loadFromDb($oxID);


    if ($aData) {
        $this->assign($aData);

        $this->_saveSortingFieldValuesOnLoad();


        $this->_isLoaded = true;

        return true;
    }

    return false;
}

protected function _loadFromDb($sOXID)
{
    $this->setForceCoreTableUsage(true);

    $sSelect = $this->buildSelectString(array($this->getViewName() . ".oxid" => $sOXID));

    $aData = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getRow($sSelect);

    return $aData;
}

}

Das Objekt $aData enthält ausschließtlich die OXID. Irgend etwas läuft hier schief :confused:

Vielen Dank, aber lazyloading habe ich bereits auf false gesetzt.

Da fehlt der Konstruktor:

public function __construct()
{
    parent::__construct();
    $this->init('esy_myprojects_userprojectitems');
}

Merci - funktioniert :slight_smile: