2013-01-16 4 views
0

을 sales_flat_order_item에 추가 :젠토 1.7 - 나는 이러한 열을 추가하면 열이

$installer->run("ALTER TABLE sales_flat_order_item add COLUMN shipping_status_id int"); 
$installer->run("ALTER TABLE sales_flat_quote_item add COLUMN shipping_status_id int"); 

을 그리고이 테스트 2 번 실행은 :

$o = Mage::getModel('sales/order_item'); 
    $o->load(92); 

    print $o->getShippingStatusId() . "\n"; 

    $o->setShippingStatusId(123); 
    $o->save(); 

내게는 아무 것도 보이지 않습니다. 2 번

$installer->run("ALTER TABLE sales_flat_order_item add COLUMN shipping_status int"); 
$installer->run("ALTER TABLE sales_flat_quote_item add COLUMN shipping_status int"); 

을 그리고이 테스트를 실행합니다 :

나는 열을 삭제하고 추가하는 경우

$o = Mage::getModel('sales/order_item'); 
    $o->load(92); 

    print $o->getShippingStatus() . "\n"; 

    $o->setShippingStatus(123); 
    $o->save(); 

그런 다음 작동

, 값을 저장하고 나는 그것을 다시 얻을 수 있습니다.

차이는 _id입니다. 첫 번째 예제에서 이것이 작동하지 않는 이유는 무엇입니까? 뭔가 특별한 것이 있습니까? 나는 그것을 몇 번 확인했다.

는 다른 테스트를 했 모두 열 추가 :

$installer->run("ALTER TABLE sales_flat_order_item add COLUMN shipping_status_id int"); 
$installer->run("ALTER TABLE sales_flat_order_item add COLUMN shipping_status int"); 

$installer->run("ALTER TABLE sales_flat_quote_item add COLUMN shipping_status_id int"); 
$installer->run("ALTER TABLE sales_flat_quote_item add COLUMN shipping_status int"); 

테스트 :

 $o = Mage::getModel('sales/order_item'); 
    $o->load(92); 

    print $o->getItemId() . "/" . $o->getShippingStatusId() . "\n"; 
    print $o->getItemId() . "/" . $o->getShippingStatus() . "\n"; 

    $o->setShippingStatusId(123); 
    $o->setShippingStatus(456); 
    $o->save(); 

456 값이 설정 얻을됩니다.

/var/cache이 삭제됩니다.

답변

0

열을 추가 한 후 Magento 캐시를 물리적으로 삭제해야합니다 (/ var/cache /). Zend는 테이블 구조를 캐시하므로 업데이트 후 새로 고쳐야합니다.

또한, 더 나은 문제를 이해하기 위해 디버거를 사용하는

$o->setData("shipping_status_id", 123); 

시도를 사용하려고합니다.

또한 당신이

$o->setShippingStatusId(123); 
var_dump($o->getData()); 

을하고 'shipping_status_id'여부를 확인 할 수 있습니다 것은 내가 완전한`/ var` 폴더,하지만 동일한 결과를 삭제 한

+0

데이터에 존재합니다. 이번 테스트에서 다시 테스트하고 두 열을 추가했습니다. 같은 결과. – Guus

+1

$ o-> setData ('shipping_status_id, 123);을 (를) 수행하십시오. 같은 결과를 반환합니까? – freento

+0

'$ o-> setData ("shipping_status_id", 123)'작동합니다! 이상하게도'$ o-> setShippingStatusId (123); '가 작동하지 않습니다. – Guus