2017-06-21 4 views
0

Ich verwende Prestashop 1.7.1.2. Ich möchte eine Klasse erstellen, die ObjectModel erweitert, aber ich muss einen primären Id-Typ der Zeichenfolge haben, keine Ganzzahl. Wie kann ich das erreichen, muss ich die load() Funktion des ORM überschreiben?Erweitern ObjectModel mit Zeichenfolge als ID-Typ

Vielen Dank im Voraus

Antwort

0

Bisher hat Ihnen niemand geholfen. Ich werde versuchen, zusammen mit dir zu denken. Ich bin kein Experte für Prestashop-Entwicklung. Aber hoffe, Sie weiter zu bringen.

So habe ich mein ObjectModel gemacht. Ist Ihre primäre ID als String in Ihrer phpmyadmin-Tabelle konfiguriert?

/** 
* @see ObjectModel::$properties 
*/ 
public $id_product; 
public $serial_key; 

/** 
* @see ObjectModel::$definition 
*/ 

public static $definition = array(
    'table' => 'avanto_keys', 
    'primary' => 'id_avanto_keys', 
    'multilang' => FALSE, 
    'fields' => array(
     'id_product' =>   array('type' => self::TYPE_ID), 
     'serial_key' =>   array('type' => self::TYPE_STRING), 
    ), 
); 
+0

Vielen Dank für den Versuch. Ja, es ist als varchar (64) konfiguriert (weil es ein Querverweisfeld mit einem Guid aus einer mssql-Datenbank ist). Wenn ich also eine neue Instanz dieser Klasse erstelle, wird das ID-Feld in ein Int (in diesem Fall id_avanto_keys) umgewandelt/geparst. Ich habe einen Workaround benutzt und ich denke, es funktioniert. –

+0

Hallo. Können Sie die Lösung mit uns teilen? Vielleicht werden wir es eines Tages brauchen. Vielen Dank! – vanhims

0

Natürlich, wie habe ich vergessen! Ich habe die Produkt-ID des Prestashops als Primärschlüssel und XRef-ID als indizierte Spalte beibehalten. Wenn ich mit der XRef-ID instanziieren muss, führe ich eine direkte DB-Abfrage aus und hydratriere dann das Objekt. Dies kann auch verbessert werden, um zwischen der XRef-ID- oder Primär-ID-Instanziierung zu wählen.

Verwandte Themen