Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Prestashop 1.7无法保存订单地址_Javascript_Php_Jquery_Prestashop_Prestashop 1.7 - Fatal编程技术网

Javascript Prestashop 1.7无法保存订单地址

Javascript Prestashop 1.7无法保存订单地址,javascript,php,jquery,prestashop,prestashop-1.7,Javascript,Php,Jquery,Prestashop,Prestashop 1.7,当我试图在Prestashop 1.7中保存我的地址时,我遇到了这个错误,我在后端更改了地址格式,从格式中删除国家后,我无法保存地址,有人能帮我吗 显示该错误的图像: [PrestaShopException] Property Address->id_country is empty at line 915 in file classes/ObjectModel.php 910. } 911. 912. $message = $thi

当我试图在Prestashop 1.7中保存我的地址时,我遇到了这个错误,我在后端更改了地址格式,从格式中删除国家后,我无法保存地址,有人能帮我吗

显示该错误的图像:

[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]


PrestaShop地址表中的国家字段是必需的,因此无法将其从地址格式中删除


有关更多详细信息,请检查商店数据库中ps_地址表的结构。

PrestaShop地址表中的国家/地区字段是必需的,因此无法将其从地址格式中删除


有关更多详细信息,请检查您商店数据库中ps_地址表的结构。

根据上述消息,即使您已从地址格式中删除了国家,系统也需要用户提供地址的国家id


class/Address.php文件中,您可以清楚地看到,在列定义变量中,id\u country是必填字段,并且值应该是正整数。

根据上述消息,即使您已从地址格式中删除了country,系统也需要用户提供地址的country id


class/Address.php文件中,您可以清楚地看到,在列定义变量中,id\u country是必填字段,并且值应该是正整数。

在Prestashop 1.7.2.2中遇到了相同的问题

似乎当添加一个新地址时,它还没有被持久化到DB中,以返回id_Address的自动递增id,以便isUsed()函数正确计算

在classes\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();
}
公共功能保存(地址$Address,$token)
{
如果(!$this->authorizeChange($address,$token)){
返回false;
}
$address->id\u customer=$this->customer->id;
$address->save();//isUsed()){
$old_address=新地址($address->id);
$address->id=$address->id\u address=null;
返回$address->save()&&$old_address->delete();
}
返回$address->save();
}

在Prestashop 1.7.2.2中遇到了相同的问题

似乎当添加一个新地址时,它还没有被持久化到DB中,以返回id_Address的自动递增id,以便isUsed()函数正确计算

在classes\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();
}
公共功能保存(地址$Address,$token)
{
如果(!$this->authorizeChange($address,$token)){
返回false;
}
$address->id\u customer=$this->customer->id;
$address->save();//isUsed()){
$old_address=新地址($address->id);
$address->id=$address->id\u address=null;
返回$address->save()&&$old_address->delete();
}
返回$address->save();
}

错误提示:没有国家!答案很简单,只需在此处添加县:


错误提示:没有国家!答案很简单,只需在此处添加县:


我认为这是一个错误。它从1.6更改为1.7。在1.6版本中,即使您将其从国家地址格式中删除,它仍然会询问国家。我相信这是一个bug。它从1.6更改为1.7。在1.6中,即使您将其从国家/地区地址格式中删除,它仍会请求国家/地区。此修复程序在PrestaShop V:7.1.33上也适用于我。此修复程序在PrestaShop V:7.1.33上也适用于我