Moin,
ich möchte in meinem Oxid 6.2.3 System ein eigenes Model hinzufügen.
Dieses soll zuerst nur ein einen Title und Active Status enthalten.
Mit meinem Modul füge ich den Listenpunkt “Kontaktperson” unter Benutzer ein. Ich habe einen Controller der den klassischen List View aufruft und dort fängt das Problem an. Die Liste oben möchte auf das Model zugreifen.
Dies habe ich wiefolgt eingebunden:
'extend' => [
\OxidEsales\Eshop\Core\Model\BaseModel::class => \MyComp\MyContactPerson\Application\Model\ContactPerson::class,
],
Meine Metadata Version ist die 2.1.
Dies ruft das File auf in dem ich das Model definiert habe:
<?php
namespace MyComp\MyContactPerson\Application\Model;
use oxDb;
class ContactPerson extends \OxidEsales\Eshop\Core\Model\MultiLanguageModel
{
/**
* Name of current class
*
* @var string
*/
protected $_sClassName = 'idcontactperson';
/**
* Class constructor, initiates parent constructor (parent::oxBase()).
*/
public function __construct()
{
parent::__construct();
$this->init('idcontactperson');
}
function delete($sOXID = null)
{
if (!$sOXID) {
$sOXID = $this->getId();
}
if (!$sOXID) {
return false;
}
parent::delete($sOXID);
return true;
}
}
Nun bekomme ich beim Aufruf eine Weiterleitung auf die Startseite (Natürlich nur im oberen Listview) mit folgender Fehlermeldung:
[2021-04-03 17:50:17] OXID Logger.ERROR: EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND idcontactperson ["[object] (OxidEsales\\Eshop\\Core\\Exception\\SystemComponentException(code: 0): EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND idcontactperson at /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php:223)\n[stacktrace]\n#0 /usr/www/users/www/oxid/releases/38/source/oxfunctions.php(104): OxidEsales\\EshopCommunity\\Core\\UtilsObject->oxNew('idcontactperson')\n#1 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/Model/ListModel.php(336): oxNew('idcontactperson')\n#2 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/Admin/AdminListController.php(780): OxidEsales\\EshopCommunity\\Core\\Model\\ListModel->getBaseObject()\n#3 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/Admin/AdminListController.php(217): OxidEsales\\EshopCommunity\\Application\\Controller\\Admin\\AdminListController->getItemList()\n#4 /usr/www/users/www/oxid/releases/38/source/modules/mycomp/my_contactperson/Controller/Admin/ContactPersonList.php(39): OxidEsales\\EshopCommunity\\Application\\Controller\\Admin\\AdminListController->render()\n#5 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(471): MyComp\\MyContactPerson\\Controller\\Admin\\ContactPersonList->render()\n#6 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(359): OxidEsales\\EshopCommunity\\Core\\ShopControl->_render(Object(MyComp\\MyContactPerson\\Controller\\Admin\\ContactPersonList))\n#7 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(282): OxidEsales\\EshopCommunity\\Core\\ShopControl->formOutput(Object(MyComp\\MyContactPerson\\Controller\\Admin\\ContactPersonList))\n#8 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('MyComp\\\\MyCont...', NULL, NULL, NULL)\n#9 /usr/www/users/www/oxid/releases/38/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(27): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()\n#10 /usr/www/users/www/oxid/releases/38/source/index.php(16): OxidEsales\\EshopCommunity\\Core\\Oxid::run()\n#11 /usr/www/users/www/oxid/releases/38/source/admin/index.php(12): require_once('/usr/www/users/...')\n#12 {main}\n"] []
Hier ist einmal ein Bild welches ich mit dem DevUtils Modul von VanillaThunder gemacht habe:
Ist diese Art ein Model hinzuzufügen überhaupt die “richtige” und wenn ja wäre es toll wenn mir jemand vielleicht einen kleinen Tipp geben könnte was ich falsch machen, vielen Dank! Und Frohe Ostern