Hallo Zusammen,
wie kann ich ein Model ohne Attributtabelle um weitere Datenbankfelder erweitern?
Es geht mir um ein Model eines Communityplugins, das wir einsetzen.
Beste Grüße
David
Hallo Zusammen,
wie kann ich ein Model ohne Attributtabelle um weitere Datenbankfelder erweitern?
Es geht mir um ein Model eines Communityplugins, das wir einsetzen.
Beste Grüße
David
Hallo Zusammen,
wie kann ich ein Model ohne Attributtabelle um weitere Datenbankfelder erweitern?
Es geht mir um ein Model eines Communityplugins, das wir einsetzen.
Beste Grüße
David
Hallo,
kurz und knapp: geht nicht, neue Felder kann man nur bei den Tabellen hinzufügen, die Attribut-Tabellen besitzen. Alternativ müsste man eben das andere Plugin umschreiben und dahingehend anpassen - wobei das natürlich nicht updatesicher wäre. Oder einfach den Plugin-Hersteller anfragen, ob er das zusätzliche Feld selbst integrieren kann.
Beste Grüße
Sebastian
Hallo Zusammen,
ich sag jetz mal ganz vorsichtig doch es geht. Jedenfalls bin ich da gerade dran…
Ich hab erfolgreich die s_article_configurator_groups erweitert ohne das Eltern-Model „Group“ komplett zu über schreiben.
Was ich bis jetzt noch nicht hinbekommen habe ist mittels
$tool->getUpdateSchema($classes);
die Datenbanktabelle zu erweitern. Deswegen mache ich diesen Schritt mit „Plain SQL“
Gruß
Michael
Ups vergessen zu sagen wie ich es gemacht habe.
Ich habe das Model wie folgt erweitert
namespace
/**
* @ORM\Entity
* @ORM\Table(name="s_article_configurator_groups")
*/
class Group extends \Shopware\Models\Article\Configurator\Group
{
[...]
}
und natürlich in die Bootstrap.php
public function afterInit()
{
$this->registerCustomModels();
parent::afterInit();
}
WICHTIG: Man muss die Repository Methoden anpassen (Hook)
Gruß
Michael
P.S: Bitte dran denken ich bin noch dran und rein theoretisch kann noch alles zusamenfallen
Hallo Michael,
danke für den Input, ich habe es mittlerweile auch “geschafft”.
Es ist aber schon recht umständlich und nicht ganz optimal.
Bgzl deiner Frage zu Datenbank Updaten:
public function install()
{
$this->updateSchema();
}
private function updateSchema()
{
$em = $this->getEntityManager();
$schemaTool = new Doctrine\ORM\Tools\SchemaTool($this->getEntityManager());
$classes = array(
$em->getClassMetadata('')
);
$schemaTool->updateSchema($classes, true);
}
Hey dfrerich,
cool…
Ja, da hast du vollkommen recht…
Super, vielen Dank zurück. Das werde ich später ausprobieren.
Gruß
Michael
Hallo zusammen
Momentan stehen wir an derselben Stelle.
Wir möchten im Backend die Konfigurationseinstellungen der Varianten-Gruppe mit einer neuen Checkbox versehen.
Die Checkbox konnten wir bereits im Backend hinzufügen und durch eure Hilfe können wir nun auch via Bootstrap das Zusatzfeld in die Datenbanktabelle s_article_configurator_groups
einfügen.
Nun haben wir aber folgendes Problem:
Wenn wir die Checkbox im Backend aktivieren und den Speicher-Button betätigen, ändert sich der Wert in der Datenbank nicht.
D.h. Der Wert der Checkbox wird nicht an die Datenbank übermittelt.
Aufbau der Checkbox:
var kmudoToggle = Ext.create('Ext.form.field.Checkbox', {
name: 'kmudodropdownactive',
inputValue: '1',
uncheckedValue: '0',
fieldLabel: 'Variante mit Bild'
});
Unsere Erweiterung des Models:
//{block name="backend/article/model/configurator_group/fields" append}
{ name: 'kmudodropdownactive', type: 'int' },
//{/block}
In der Netzwerkanalyse sehen wir aber in der saveConfiguratorGroup den korrekten Wert der Checkbox. (Wenn Checkbox aktiv = Wert 1 / wenn Checkbox nicht aktiv = Wert 0)
Wisst ihr vielleicht an was es liegen könnte?
Beste Grüsse
KMUdo AG
Hallo Zusammen
Weiss niemand wie im Backend die Backend Templates angelegt werden sodass ein Wert in die Datenbank gespeichert werden kann?
Muss man ein Controller oder auch ein Store anlegen?
Freundliche Grüsse
KMUdo AG