답변:
Magento 1.9.2에서 중간 이름이이 열에 추가되었습니다.
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
$adapter->quote(' '),
$ifnullLast
));
불행히도 그들은 고객이 중간 이름을 가지고 있지 않은 경우에 대해서는 실제로 생각하지 않았습니다. 코드 는 다음과 같습니다.
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
new Zend_Db_Expr('IF({{table}}.middlename IS NULL OR {{table}}.middlename="", "", " ")'),
$ifnullLast
));
app/code/local/Mage/Sales/Model/Resource/Order.php
설명 된대로 파일을 복사하여 패치 할 수 있습니다 .
기존 레코드를 수정하기 위해 다음과 같은 PHP 스크립트를 사용할 수 있습니다.
<?php
require 'app/Mage.php';
Mage::app();
Mage::getModel('sales/order')->getResource()->updateGridRecords(
Mage::getResourceModel('sales/order_collection')->getAllIds());
echo 'done';
로 배치 fixordergrid.php
의 젠토 루트 디렉토리의 실행 및 삭제합니다. 시간이 걸릴 수 있으므로 브라우저가 아닌 콘솔에서 실행하는 것이 좋습니다.
php fixordergrid.php
Mage::getModel('sales/order')->getResource()->updateGridRecords(Mage::getResourceModel('sales/order_collection')->getAllIds());
허용 된 답변을 더 나아가려면 핵심 마 젠토 코드를 편집하지 않는 것이 좋습니다. 따라서 수정으로 다시 쓰는 것이 더 좋습니다.
config.xml에서
<global>
<models>
<sales_resource>
<rewrite>
<order>Yournamespace_Yourextension_Model_Sales_Order_Resource_Order</order>
</rewrite>
</sales_resource>
</models>
</global>