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的商店都面临同样的问题。请帮助我,并让我知道是否有解决此问题的方法。您好,您无法指定需要进行此编辑的文件?仅此编辑是否会以正确的格式保存日期并避免出现任何错误?如果有人能来回复,以确定需要在何处进行上述更改,即哪些文件,此编辑是否解决了问题?如果您能详细解释您的解决方案,我将不胜感激,以便我可以尝试解决此问题我的代码也是。现在对我来说太模糊了,以至于我无法理解哪些文件需要编辑,等等。谢谢。你好,你不能指定哪些文件需要编辑吗?仅此编辑是否会以正确的格式保存日期并避免出现任何错误?如果有人能来回复,以确定需要在何处进行上述更改,即哪些文件,此编辑是否解决了问题?如果您能详细解释您的解决方案,我将不胜感激,以便我可以尝试解决此问题我的代码也是。现在对我来说太模糊了,我无法理解什么文件需要编辑,等等。谢谢。