Guten Abend
Ich stecke gerade an einem dummen Problem fest. Folgende Situation:
Ich habe in MM 2.4 das Model "mm_company" erstellt. Das hat das Attribut "member_group" und bezieht sich auf die Mitgliedergruppen, die man auch den Mitgliedern (Personen) zuweisen kann.
Im Mitgliedermodul kann ich Personen die ID von "mm_company" zuweisen. Sie werden somit zu Kontaktpersonen des Unternehmens. Sobald das gespeichert wird, sollen die Mitgliedergruppen der Kontaktperson die Mitgliedergruppe (member_group) des zugeordneten Unternehmens via onsubmit_callback übernehmenf. Member_group ist nur ein Integer-Wert, da ein Unternehmen nur einer Gruppe zugeordnet werden kann. Die Person hingegen kann aber noch weitere Mitgliedergruppen haben.
Zu diesem Zweck lese ich über eine Funktion zuerst die Mitgliedergruppen vom Mitglied in das Array "arrGroup" eine und entferne zunächst die relevanten Gruppen. In einem nächsten Schritt wird die Mitgliedergruppe des Unternehmens dann in das Array eingefügt. Und am Ende folgt dann ein Update an die DB.
Das klappt alles bis zu dem Punkt, wo ich "member_group" vom MetaModel abfragen und im Array dann ergänzen möchte. Ich habe Mühe mit dem Debugging, da es ja im Backend-Modul ausgelöst wird.
Hier der relevante Auszug. onsubmit_callback, $company_id, $dc->id funktionieren alle korrekt. Daran kann es nicht liegen. Auch das Update an die DB wird ausgelöst, halt ohne den richtigen Wert.
PHP-Code:
use MetaModels\Attribute\IAttribute;
use MetaModels\Filter\IFilter;
use MetaModels\Render\Setting\ICollection;
...
if($company_id):
$factory = \Contao\System::getContainer()->get('metamodels.factory');
$model = $factory->getMetaModel("mm_company");
$items = $model->findById($company_id);
foreach ($items as $item):
$arrGroup[] = $item->get('member_group');
endforeach;
endif;
$this->Database->prepare("UPDATE tl_member SET groups=? WHERE id=?")
->execute(serialize($arrGroup) , $dc->id);
Was hab ich falsch gemacht? Hat mir da jemand einen Tipp?