Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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
Php 在Magento中从后端编辑客户时出错_Php_Zend Framework_Magento_E Commerce - Fatal编程技术网

Php 在Magento中从后端编辑客户时出错

Php 在Magento中从后端编辑客户时出错,php,zend-framework,magento,e-commerce,Php,Zend Framework,Magento,E Commerce,我突然不知从哪里遇到了这个错误,需要一些帮助 ) 在我的“管理客户”部分中,每当我添加新客户时,它都会显示良好,并且所有值都正确。但每当我试图编辑一个新添加的客户时,我就会在Magento中看到一个错误页面 ) 处理您的请求时出错 ) 稍后,当我返回到“管理客户”网格时,该客户记录的“客户自”列将更改为该值11月30日-1 01:00:00 ) 那么有人知道那边可能出了什么问题吗 ) 这是var/report文件夹中的错误 a:5:{i:0;s:

我突然不知从哪里遇到了这个错误,需要一些帮助

    )
在我的“管理客户”部分中,每当我添加新客户时,它都会显示良好,并且所有值都正确。但每当我试图编辑一个新添加的客户时,我就会在Magento中看到一个错误页面

    )
处理您的请求时出错

    )
稍后,当我返回到“管理客户”网格时,该客户记录的“客户自”列将更改为该值11月30日-1 01:00:00

    )
那么有人知道那边可能出了什么问题吗

    )
这是var/report文件夹中的错误

a:5:{i:0;s:25:"No date part in '' found.";i:1;s:4432:"#0 /home/wpfsl/public_html/lib/Zend/Date.php(1078): Zend_Date->_calculate('set', false, NULL, 'en_GB')
#1 /home/wpfsl/public_html/lib/Zend/Date.php(197): Zend_Date->set(false, NULL, 'en_GB')
#2 /home/wpfsl/public_html/app/code/core/Mage/Core/Model/Locale.php(478): Zend_Date->__construct(false, NULL, Object(Zend_Locale))
#3 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/View.php(76): Mage_Core_Model_Locale->date(false)
#4 /home/wpfsl/public_html/app/design/adminhtml/default/default/template/customer/tab/view.phtml(36): Mage_Adminhtml_Block_Customer_Edit_Tab_View->getCreateDate()
#5 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/wpfsl/pub...')
#6 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#7 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#8 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#9 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Template->_toHtml()
#10 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php(303): Mage_Core_Block_Abstract->toHtml()
#11 /home/wpfsl/public_html/app/design/adminhtml/default/default/template/widget/tabs.phtml(38): Mage_Adminhtml_Block_Widget_Tabs->getTabContent(Object(Mage_Adminhtml_Block_Customer_Edit_Tab_View))
#12 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/wpfsl/pub...')
#13 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#14 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#15 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#16 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Template->_toHtml()
#17 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
#18 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Text_List->_toHtml()
#19 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml()
#20 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('left', true)
#21 /home/wpfsl/public_html/app/design/adminhtml/default/default/template/page.phtml(58): Mage_Core_Block_Abstract->getChildHtml('left')
#22 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/wpfsl/pub...')
#23 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#24 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#25 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#26 /home/wpfsl/public_html/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Template->_toHtml()
#27 /home/wpfsl/public_html/app/code/core/Mage/Core/Model/Layout.php(529): Mage_Core_Block_Abstract->toHtml()
#28 /home/wpfsl/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(391): Mage_Core_Model_Layout->getOutput()
#29 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/controllers/CustomerController.php(151): Mage_Core_Controller_Varien_Action->renderLayout()
#30 /home/wpfsl/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Adminhtml_CustomerController->editAction()
#31 /home/wpfsl/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('edit')
#32 /home/wpfsl/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#33 /home/wpfsl/public_html/app/code/core/Mage/Core/Model/App.php(347): Mage_Core_Controller_Varien_Front->dispatch()
#34 /home/wpfsl/public_html/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#35 /home/wpfsl/public_html/index.php(80): Mage::run('', 'store')
#36 {main}";s:3:"url";s:80:"/index.php/wpfsl_admin/customer/edit/id/11/key/4e2ec034dd470035e31f5f55242e0811/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:5:"admin";}
    )
很抱歉,我还意识到,虽然我编写的代码至少允许我编辑记录而没有任何错误,但仍然会将客户更改为随机日期值,如30 No-01:00:00

    )
但是,如果我尝试从后端为同样使用magento后端创建的客户创建订单,我会得到以下错误

    )
a:5:{i:0;s:825:无效方法Mage\u Adminhtml\u Block\u Sales\u Order\u View\u Tab\u History::IsCustomerNotificationNotAppliebleArray [0]=>阵列 [标题]=>待定 [通知]=>0 [评论]=> [created_at]=>Zend_日期对象 [\u地区:Zend\u日期:private]=>en\u GB [\u分数:Zend\u日期:private]=>0 [\u精度:Zend\u日期:private]=>3 [\u unixTimestamp:Zend\u Date\u DateObject:private]=>1323946274 [\u时区:Zend\u Date\u DateObject:private]=>欧洲/伦敦 [\u offset:Zend\u Date\u DateObject:private]=>-3600 [\u syncronised:Zend\u Date\u DateObject:private]=>0 [_dst:protected]=>1

    )
;i:1;s:4197:0/home/wpfsl/public_html/app/design/adminhtml/default/default/template/sales/order/view/tab/history.phtml38:Varien_Object->调用'isCustomerNotif…',数组 1/home/wpfsl/public\u html/app/design/adminhtml/default/default/template/sales/order/view/tab/history.phtml38:Mage\u adminhtml\u Block\u sales\u order\u view\u tab\u history->iscustomernotificationnotapplicatablearray 2/home/wpfsl/public_html/app/code/core/Mage/core/Block/Template.php241:包括“/home/wpfsl/pub…” 3/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php272:Mage\u core\u Block\u Template->fetchView'adminhtml/defau…' 4/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php286:Mage\u core\u Block\u Template->renderView 5/home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php81:Mage_core_Block_Template-> 6/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Abstract.php863:Mage\u Adminhtml\u Block\u Template->\u toHtml 7/home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php303:Mage_core_Block_Abstract->toHtml 8/home/wpfsl/public\u html/app/design/adminhtml/default/default/template/widget/tabs.phtml38:Mage\u adminhtml\u Block\u widget\u tabs->getabcontentobjectmage\u adminhtml\u Block\u Sales\u Order\u View\u Tab\u History 9/home/wpfsl/public_html/app/code/core/Mage/core/Block/Template.php241:包括“/home/wpfsl/pub…” 10/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php272:Mage\u core\u Block\u Template->fetchView'adminhtml/defau…' 11/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php286:Mage\u core\u Block\u Template->renderView 12/home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php81:Mage_core_Block_Template-> 13/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Abstract.php863:Mage\u Adminhtml\u Block\u Template->\u toHtml 14/home/wpfsl/public_html/app/code/core/Mage/core/Block/Text/List.php43:Mage_core_Block_Abstract->toHtml 15/home/wpfsl/public_html/app/code/core/Mage/core/Block/Abstract.php863:Mage_core_Block_Text_List-> 16/home/wpfsl/public_html/app/code/core/Mage/core/Block/Abstract.php582:Mage_core_Block_Abstract->toHtml 17/home/wpfsl/public_html/app/code/core/Mage/core/Block/Abstract.php526:Mage_core_Block_Abstract->_getChildHtml'left',true 18/home/wpfsl/public\u html/app/design/adminhtml/default/default/template/page.phtml58:Mage\u Core\u Block\u Abstract->getChildHtml'left' 19/home/wpfsl/public_html/app/code/core/Mage/core/Block/Template.php241:包括“/home/wpfsl/pub…” 20/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php272:Mage\u core\u Block\u Template->fetchView'adminhtml/defau…' 21/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Template.php286:Mage\u core\u Block\u Template->renderView 22/home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Template.php81:Mage_core_Block_Template-> 23/home/wpfsl/public\u html/app/code/core/Mage/core/Block/Abstract.php863:Mage\u Adminhtml\u Block\u Template->\u toHtml 24/home/wpfsl/public_html/app/code/core/Mage/core/Model/Layout.php529:Mage_core_Block_Abstract- >toHtml 25/home/wpfsl/public_html/app/code/core/Mage/core/Controller/Varien/Action.php391:Mage_core_Model_布局->获取输出 26/home/wpfsl/public_html/app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php119:Mage_core_Controller_Varien_Action->renderLayout 27/home/wpfsl/public\u html/app/code/core/Mage/core/Controller/Varien/Action.php420:Mage\u Adminhtml\u Sales\u OrderController->viewAction 28/home/wpfsl/public\u html/app/code/core/Mage/core/Controller/Varien/Router/Standard.php250:Mage\u core\u Controller\u Varien\u Action->调度“查看” 29/home/wpfsl/public_html/app/code/core/Mage/core/Controller/Varien/Front.php176:Mage_core_Controller_Varien_Router_Standard->matchObjectMage_core_Controller_Request_Http 30/home/wpfsl/public\u html/app/code/core/Mage/core/Model/app.php347:Mage\u core\u Controller\u Varien\u Front->dispatch 31/home/wpfsl/public_html/app/Mage.php640:Mage_Core_Model_app->runArray 32/home/wpfsl/public_html/index.php80:Mage::运行“存储” 33{main};s:3:url;s:88:/index.php/wpfsl_admin/sales_order/view/order_id/3/key/148f59cc3e6d14da7c22a004114985cf/;s:11:脚本名称;s:10:/index.php;s:4:皮肤;s:5:admin;}

    )

我再次猜测,这个错误也与日期因素有关?

假设您使用的是Magento 1.6.x,您没有提到报告的版本,即第3行和第4行

    )
#3 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/View.php(76): Mage_Core_Model_Locale->date(false)
#4 /home/wpfsl/public_html/app/design/adminhtml/default/default/template/customer/tab/view.phtml(36): Mage_Adminhtml_Block_Customer_Edit_Tab_View->getCreateDate()
指出您的客户在字段*处创建的_不包含有效的日期时间/时间戳:

    )
public function getCreateDate()
{
    $date = Mage::app()->getLocale()->date($this->getCustomer()->getCreatedAtTimestamp());
    return $this->formatDate($date, Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true);
}
请注意,Mage_Adminhtml_Block_Customer_Edit_Tab_视图无法格式化已创建的_at字段的已存在但无效的值

    )
您真正的问题是记录生命周期早期的其他地方

    )
我会开始检查添加新客户是否真的产生有效的created_at条目

    )

*因为customer\u只是在处创建的\u的虚拟映射。

假设您使用的是Magento 1.6.x,您没有提到报告的第3行和第4行版本

    )
#3 /home/wpfsl/public_html/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/View.php(76): Mage_Core_Model_Locale->date(false)
#4 /home/wpfsl/public_html/app/design/adminhtml/default/default/template/customer/tab/view.phtml(36): Mage_Adminhtml_Block_Customer_Edit_Tab_View->getCreateDate()
指出您的客户在字段*处创建的_不包含有效的日期时间/时间戳:

    )
public function getCreateDate()
{
    $date = Mage::app()->getLocale()->date($this->getCustomer()->getCreatedAtTimestamp());
    return $this->formatDate($date, Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true);
}
请注意,Mage_Adminhtml_Block_Customer_Edit_Tab_视图无法格式化已创建的_at字段的已存在但无效的值

    )
您真正的问题是记录生命周期早期的其他地方

    )
我会开始检查添加新客户是否真的产生有效的created_at条目

    )

*因为customer只是在创建时的虚拟映射。

我使用的是Magento ve 1.6.1。我的getCreateDate函数正是您提到的。我看不出有什么问题,因为在创建新客户时,日期确实得到了正确保存。它只在我编辑记录时更改

    )
找到了部分解决方案。用这段代码更改lib/Zend/Date.php可以让我编辑和保存记录时不会出现任何错误

    )
isset($parsed['year']) ? (1970 + $parsed['year']) : 1970,
                        false), $this->getUnixTimestamp(), false);

                } catch (Zend_Locale_Exception $e) {

/*-- fix BEGIN --*/Zend_Locale_Format::getDate( ) failed --*/

                    if( !is_numeric( $date ) ) {

                            $parsed = date_parse( $date . ( $locale != "" ? " " . $locale : "" ) );
                            if( $parsed === FALSE ) {
                                    $parsed = array( 'year' => 1970, 'month' => 1, 'day' => 1, 'hour' => 0, 'minute' => 0, 'second' => 0 );
                            }

                            return $this->_assign( $calc, $this->mktime(
                                            $parsed['hour'],
                                            $parsed['minute'],
                                            $parsed['second'],
                                            $parsed['month'],
                                            $parsed['day'],
                                            $parsed['year'], false ),
                                            $this->getUnixTimestamp( ), false );

                    } else {

                            #require_once 'Zend/Date/Exception.php';
                            throw new Zend_Date_Exception( $e->getMessage( ) , 0, $e, $date );
                    }
/*-- fix END --*/

                }

            }

            return $this->_assign($calc, $date, $this->getUnixTimestamp(), false);
            break; 

但当我编辑任何新添加的客户记录时,客户自更改回11月30日01:00:00。那么这是一个已知的bug还是什么?有人在这个问题上做过什么工作吗

我正在使用Magento ve 1.6.1。我的getCreateDate函数正是您提到的。我看不出有什么问题,因为在创建新客户时,日期确实得到了正确保存。它只在我编辑记录时更改

    )
找到了部分解决方案。用这段代码更改lib/Zend/Date.php可以让我编辑和保存记录时不会出现任何错误

    )
isset($parsed['year']) ? (1970 + $parsed['year']) : 1970,
                        false), $this->getUnixTimestamp(), false);

                } catch (Zend_Locale_Exception $e) {

/*-- fix BEGIN --*/Zend_Locale_Format::getDate( ) failed --*/

                    if( !is_numeric( $date ) ) {

                            $parsed = date_parse( $date . ( $locale != "" ? " " . $locale : "" ) );
                            if( $parsed === FALSE ) {
                                    $parsed = array( 'year' => 1970, 'month' => 1, 'day' => 1, 'hour' => 0, 'minute' => 0, 'second' => 0 );
                            }

                            return $this->_assign( $calc, $this->mktime(
                                            $parsed['hour'],
                                            $parsed['minute'],
                                            $parsed['second'],
                                            $parsed['month'],
                                            $parsed['day'],
                                            $parsed['year'], false ),
                                            $this->getUnixTimestamp( ), false );

                    } else {

                            #require_once 'Zend/Date/Exception.php';
                            throw new Zend_Date_Exception( $e->getMessage( ) , 0, $e, $date );
                    }
/*-- fix END --*/

                }

            }

            return $this->_assign($calc, $date, $this->getUnixTimestamp(), false);
            break; 

但当我编辑任何新添加的客户记录时,客户自更改回11月30日01:00:00。那么这是一个已知的bug还是什么?有人在这个问题上做过什么工作吗

这里也有同样的问题。
    )
因此,我在Magento 1.6.1.0的干净安装上试用了它,出现了以下情况

    )
在前端创建客户 表Customer Entity中的记录包含在处创建的列,其值为2011-12-15 10:14:45 在管理>客户>管理客户>编辑客户中,单击保存 表中记录的客户实体价值*创建时间*更改为2015-12-11 00:00:00
在这里与同样的问题作斗争。 因此,我在Magento 1.6.1.0的干净安装上试用了它,出现了以下情况

    )
在前端创建客户 表Customer Entity中的记录包含在处创建的列,其值为2011-12-15 10:14:45 在管理>客户>管理客户>编辑客户中,单击保存 表中记录的客户实体价值*创建时间*更改为2015-12-11 00:00:00
这似乎是Magento中的一个bug,与不同地区的日期格式有关。编辑客户时,创建的_at字段可编辑并显示在当前区域设置中。对我来说,在英国这是DD/MM/YYYY。单击“保存”时,它尝试将此值直接放入数据库,但失败,因为它不是可接受的数据库格式

    )
我通过在Mage_Customer_Model_表单中添加以下函数来修复此问题。更好的解决方案是创建类重写。更好的解决办法是让Magento通过任何领域 使用区域设置转换的ds,然后将其转换回iso格式,然后再尝试将其插入到数据库中。如果没有这个功能,也许它已经存在了,我不知道这个问题很可能会复发,就我所能看到的

    )
public function compactData(array $data)
{
    if (array_key_exists('created_at', $data))
    {
        $data['created_at'] = Mage::app()->getLocale()->date($data['created_at'])->getIso();
    }

    return parent::compactData($data);
}
编辑:

    )
再挖一些。我注意到dob字段工作正常。这是因为字段本身设置了所有正确的位,以通知日期选择器以MM/DD/YYYY格式发回日期

    )
Magento似乎是通过多种方式来处理这个问题的。CustomerController中有一个未使用的函数_filterPostData,它调用_filterDates,我认为它比上面的解决方案做得更好

    )
我已经更改了使用此函数的修复程序,尽管它必须从控制器范围调用。同样,我不建议更改核心代码,但我的新修复是在Mage_Adminhtml_CustomerController::saveAction中。我添加了第二行:

    )
$formData   = $customerForm->extractData($this->getRequest(), 'account');
$formData   = $this->_filterDates($formData, array('created_at')); /// added this line

这似乎是Magento中的一个bug,与不同地区的日期格式有关。编辑客户时,创建的_at字段可编辑并显示在当前区域设置中。对我来说,在英国这是DD/MM/YYYY。单击“保存”时,它尝试将此值直接放入数据库,但失败,因为它不是可接受的数据库格式

    )
我通过在Mage_Customer_Model_表单中添加以下函数来修复此问题。更好的解决方案是创建类重写。更好的解决方案是,Magento通过使用locale转换的任何字段,然后将其转换回iso格式,然后再尝试将这些字段插入数据库。如果没有这个功能,也许它已经存在了,我不知道这个问题很可能会复发,就我所能看到的

    )
public function compactData(array $data)
{
    if (array_key_exists('created_at', $data))
    {
        $data['created_at'] = Mage::app()->getLocale()->date($data['created_at'])->getIso();
    }

    return parent::compactData($data);
}
编辑:

    )
再挖一些。我注意到dob字段工作正常。这是因为字段本身设置了所有正确的位,以通知日期选择器以MM/DD/YYYY格式发回日期

    )
Magento似乎是通过多种方式来处理这个问题的。CustomerController中有一个未使用的函数_filterPostData,它调用_filterDates,我认为它比上面的解决方案做得更好

    )
我已经更改了使用此函数的修复程序,尽管它必须从控制器范围调用。同样,我不建议更改核心代码,但我的新修复是在Mage_Adminhtml_CustomerController::saveAction中。我添加了第二行:

    )
$formData   = $customerForm->extractData($this->getRequest(), 'account');
$formData   = $this->_filterDates($formData, array('created_at')); /// added this line

这是此属性使用的后端_模型的问题。dob使用eav/实体\属性\后端\日期时间后端\模型,产品使用eav/实体\属性\后端\时间\为客户创建但在创建时未使用该模型。此后端_模型处理所有转换和筛选日期,因此,只需更改eav_属性表即可。搜索属性_code='created_at'和实体_type_id=1,并将后端_模型的值从NULL更新为eav/entity_attribute_backend_time_created,即。不需要更改核心文件

    )

如果愿意,可以使用资源设置从自己模块的安装程序更新此属性。

此属性使用的后端\u模型存在问题。dob使用eav/实体\属性\后端\日期时间后端\模型,产品使用eav/实体\属性\后端\时间\为客户创建但在创建时未使用该模型。此后端_模型处理所有转换和筛选日期,因此,只需更改eav_属性表即可。搜索属性_code='created_at'和实体_type_id=1,并将后端_模型的值从NULL更新为eav/entity_attribute_backend_time_created,即。不需要更改核心文件

    )

如果愿意,您可以使用资源设置从自己模块的安装程序更新此属性。

如前所述,您可以使用自定义模块更新此属性,并将此行添加到设置脚本中:

    )
Mage::getSingleton('customer/customer')->getAttribute('created_at')
  ->setBackendModel('eav/entity_attribute_backend_time_created')
  ->setAttributeModel(new Zend_Db_Expr('NULL'))
  ->setInputFilter('date')
  ->save();

如前所述,您可以使用自定义模块进行此属性更新,并将此行添加到安装脚本中:

    )
Mage::getSingleton('customer/customer')->getAttribute('created_at')
  ->setBackendModel('eav/entity_attribute_backend_time_created')
  ->setAttributeModel(new Zend_Db_Expr('NULL'))
  ->setInputFilter('date')
  ->save();

我也有这个问题,但我找到了不用任何编码就能改变它的方法。 首先,如果您遇到此错误,它是由日期设置引起的,Magento 1.6和EE1.11开始更新其数据库模型,以便能够使用Oracle和其他SQL DB。这就是为什么他们需要将数据库表类型从datetime更改为timestamp,因为它可以简单地由数据库本身解析。以下是解决方案:

    )
首先,如果出现此错误,则需要转到数据库以更新customer_entity表。搜索created_at字段,如果为空,请给它一个有效值,我很震惊Magento现在允许您在admin中编辑created_at date,不知道它有多有用。 之后,您将获得正确的日期,您可以查看管理员客户编辑表单。因为我的网站是 基于EE1.11构建,它应该与1.6.0或1.6.1相同。我使用AU作为默认区域设置,因此错误来自于此。 您必须转到配置->目录->日期和时间自定义选项,并确保它使用的是AU格式的DD/MM/YYY,如果这是在您的网站上线之前完成的,应该可以。 希望这有帮助,因为大多数开发人员在开始编码之前不会经历所有设置。干杯

    )

Ben Zhang

我也有这个问题,但我找到了不用任何编码就能改变它的方法。
    )
首先,如果您遇到此错误,它是由日期设置引起的,Magento 1.6和EE1.11开始更新其数据库模型,以便能够使用Oracle和其他SQL DB。这就是为什么他们需要将数据库表类型从datetime更改为timestamp,因为它可以简单地由数据库本身解析。以下是解决方案:

    )
首先,如果出现此错误,则需要转到数据库以更新customer_entity表。搜索created_at字段,如果为空,请给它一个有效值,我很震惊Magento现在允许您在admin中编辑created_at date,不知道它有多有用。 之后,您将获得正确的日期,您可以查看管理员客户编辑表单。因为我的网站是建立在EE1.11上的,所以应该与1.6.0或1.6.1相同。我使用AU作为默认区域设置,因此错误来自于此。 您必须转到配置->目录->日期和时间自定义选项,并确保它使用的是AU格式的DD/MM/YYY,如果这是在您的网站上线之前完成的,应该可以。 希望这有帮助,因为大多数开发人员在开始编码之前不会经历所有设置。干杯

    )

Ben Zhang

根据上面的Oscar Reales帖子,更改eav_属性表中创建的_at attribute backend_模型修复了我的问题,但是我使用的值与dob相同

    )
eav/entity_attribute_backend_datetime

这对我来说很有效,进入2012年10月31日显示正确,创建的eav/实体\属性\后端\时间\导致了上面的随机日期。我通过编辑在日期创建的现有帐户、在后端创建的帐户和在前端创建的帐户对此进行了测试。一切都很好。顺便说一句,我的地区是英国。

根据上面的Oscar Reales帖子,更改eav_属性表中创建的_at attribute backend_模型修复了我的问题,但是我使用的值与dob相同

    )
eav/entity_attribute_backend_datetime

这对我来说很有效,进入2012年10月31日显示正确,创建的eav/实体\属性\后端\时间\导致了上面的随机日期。我通过编辑在日期创建的现有帐户、在后端创建的帐户和在前端创建的帐户对此进行了测试。一切都很好。顺便说一句,我所在的地区是英国。

哦,我刚刚意识到,我以前的客户都得到了很好的编辑。只有我从今天开始通过使用后端的AddNewCustomer或使用前端界面添加的客户。我无法在他们的“客户”中编辑他们,因为一旦我尝试编辑他们,他们的“客户”将更改为“11月30日-1 01:00:00”。请将相应的错误消息发布到您的var/report`文件夹中。我已使用错误消息表单var/report编辑了问题。哦,我刚刚意识到,我以前的客户都得到了很好的编辑。只有我从今天开始通过使用后端的AddNewCustomer或使用前端界面添加的客户。我无法在他们的“客户”中编辑它们,因为一旦我尝试编辑它们,它们将更改为“11月30日-1 01:00:00”。请将相应的错误消息发布到您的var/report`文件夹中。我已使用错误消息表单var/report编辑了该问题。是的,它确实在首次创建客户时创建了正确的条目。除非我们编辑记录,否则日期值保持良好。一旦我们编辑记录,数据库中的值就会更改为随机日期和0000:00:00:00。另外,在创建订单时,它会抛出一个我在下面提到的错误,并且永远不会继续执行。当您编辑记录时,请确切地调用哪个操作来保存已编辑的数据类::方法?请显示请求保存操作的表单提交过程中传递的日期。我对此不确定,但它的布局正在app/code/core/Mage/Adminhtml/Block/Customer/Edit.php中创建,实际的保存和编辑操作正在app/code/core/Mage/Adminhtml/controllers/CustomerController.php::saveAction中进行,我想是吧。但我不确定。很抱歉,当你说,'请显示表单提交过程中传递的日期,请求执行保存操作。'我仍然面临相同的问题,对于我所有使用Magento 1.6.0 n 1.6.1的商店,请帮助并告知我是否有解决此问题的方法。是的,在首次创建客户时,它确实创建了正确的条目。除非我们编辑记录,否则日期值保持良好。编辑记录后,值立即更改为随机日期和0000:00:00:
    )

00:00在数据库中。另外,在创建订单时,它会抛出一个我在下面提到的错误,并且永远不会继续执行。当您编辑记录时,请确切地调用哪个操作来保存已编辑的数据类::方法?请显示请求保存操作的表单提交过程中传递的日期。我对此不确定,但它的布局正在app/code/core/Mage/Adminhtml/Block/Customer/Edit.php中创建,实际的保存和编辑操作正在app/code/core/Mage/Adminhtml/controllers/CustomerController.php::saveAction中进行,我想是吧。但我不确定。很抱歉,当您说“请显示表单提交中要求保存操作的日期”时,我无法理解您的意思。我仍然面临同样的问题,我的所有使用Magento 1.6.0 n 1.6.1的商店都面临同样的问题。请帮助我,并让我知道是否有解决此问题的方法。您好,您无法指定需要进行此编辑的文件?仅此编辑是否会以正确的格式保存日期并避免出现任何错误?如果有人能来回复,以确定需要在何处进行上述更改,即哪些文件,此编辑是否解决了问题?如果您能详细解释您的解决方案,我将不胜感激,以便我可以尝试解决此问题我的代码也是。现在对我来说太模糊了,以至于我无法理解哪些文件需要编辑,等等。谢谢。你好,你不能指定哪些文件需要编辑吗?仅此编辑是否会以正确的格式保存日期并避免出现任何错误?如果有人能来回复,以确定需要在何处进行上述更改,即哪些文件,此编辑是否解决了问题?如果您能详细解释您的解决方案,我将不胜感激,以便我可以尝试解决此问题我的代码也是。现在对我来说太模糊了,我无法理解什么文件需要编辑,等等。谢谢。