2017-02-23 6 views
0

Ich erhalte diesen Fehler, wenn ich versuche, meine Adresse in Prestashop 1.7 zu speichern, habe ich Adressformat im Backend geändert und nach dem Entfernen des Landes aus dem Format kann ich Adresse nicht speichern, kann jemand Bitte hilf mir dabei? dass FehlerPrestashop 1.7 kann nicht speichern Adresse speichern

Bild zeigt:

[PrestaShopException] 

Property Address->id_country is empty 
at line 915 in file classes/ObjectModel.php 

910.    } 
911. 
912.    $message = $this->validateField($field, $this->$field); 
913.    if ($message !== true) { 
914.     if ($die) { 
915.      throw new PrestaShopException($message); 
916.     } 
917.     return $error_return ? $message : false; 
918.    } 
919.   } 
920. 
ObjectModelCore->validateFields - [line 248 - classes/ObjectModel.php] 
ObjectModelCore->getFields - [line 489 - classes/ObjectModel.php] 
ObjectModelCore->add - [line 176 - classes/Address.php] - [2 Arguments] 
AddressCore->add - [line 447 - classes/ObjectModel.php] - [2 Arguments] 
ObjectModelCore->save - [line 76 - classes/form/CustomerAddressPersister.php] 
CustomerAddressPersisterCore->save - [line 144 - classes/form/CustomerAddressForm.php] - [2 Arguments] 
CustomerAddressFormCore->submit - [line 111 - classes/checkout/CheckoutAddressesStep.php] 
CheckoutAddressesStepCore->handleRequest - [line 57 - classes/checkout/CheckoutProcess.php] - [1 Arguments] 
CheckoutProcessCore->handleRequest - [line 199 - controllers/front/OrderController.php] - [1 Arguments] 
OrderControllerCore->initContent - [line 201 - classes/controller/Controller.php] 
ControllerCore->run - [line 366 - classes/Dispatcher.php] 
DispatcherCore->dispatch - [line 28 - index.php] 
+0

Ich glaube, es ist ein Fehler ist. Es wurde von 1,6 auf 1,7 geändert. In 1.6 fragt es immer noch nach dem Land, auch wenn Sie es aus dem Länderadressformat entfernen. – sadlyblue

Antwort

0

Das Land Feld in der Adresstabelle von PrestaShop ist erforderlich, daher ist es nicht möglich, sie aus dem Adressformat zu entfernen.

Weitere Informationen finden Sie in der Struktur der Tabelle ps_address in der Datenbank Ihres Geschäfts.

0

Gemäß der obigen Nachricht benötigt das System die Länder-ID für die Adresse des Benutzers, auch wenn Sie das Land aus dem Adressformat entfernt haben.

In Klasse/Address.php Datei, kann man deutlich sehen, dass in Spaltendefinition Variable, id_country ein Pflichtfeld ist und Wert sollte positive ganze Zahl sein.

0

Das gleiche Problem auf Prestashop 1.7.2.2.

Scheint, wenn eine neue Adresse hinzugefügt wird, wurde es nicht in der DB beibehalten, um die automatisch inkrementierte ID von ID_Adresse für die IsUsed() - Funktion zurückzugeben, um ordnungsgemäß auszuwerten.

In den Klassen \ Form \ CustomerAddressPersister.php

public function save(Address $address, $token) 
{ 
    if (!$this->authorizeChange($address, $token)) { 
     return false; 
    } 

    $address->id_customer = $this->customer->id; 
    $address->save(); // <-- Add this 

    if ($address->isUsed()) { 
     $old_address = new Address($address->id); 
     $address->id = $address->id_address = null; 

     return $address->save() && $old_address->delete(); 
    } 

    return $address->save(); 
} 
Verwandte Themen