2014-07-07 6 views
1

의 개체가 아닌 사용자 정의 운송 모듈의 멤버 함수 setStore()에 전화 및 오류 다음됩니다 :내가 만든 젠토

치명적인 오류 : 비의 멤버 함수 setStore()를 호출 421

라인 /home/devjoand/public_html/includes/src/Mage_Shipping_Model_Shipping.php의 목적은 나는이 운송 모듈 .XML을 포함하여 모든 파일을 제거하고 여전히 날 같은 오류를 제공합니다. 위의 오류로 인해 savebilling 컨트롤러에서 배송 방법으로 보내지 않고 실행을 중지합니다. 캐시/세션을 지우고 다시 컴파일하지만 아무 것도 작동하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다!

참고 : 로컬 컴퓨터에서는 정상적으로 작동하지만 프로덕션 서버에서는 작동하지 않습니다.

+0

코드를 제공하지 않아서 어떻게 도와 줄 수 있습니까? 어쨌든 당신은 읽을 수 있습니다 : [참조 - 할 -이 - 오류 - 평균 PHP에서] (http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/12769983 # 12769983). – Debflav

+0

당신이 생각하는 변수이고 setStore()을 호출하려고하는 변수는 객체가 아닙니다. 따라서 $obj = new Obj()과 같은 객체를 인스턴스화하려고 시도하고 $obj->setStore()을 호출하려고 시도했지만 $obj을 인스턴스화하지 못했습니다. try-catch 블록으로 감싸고 예외를 덤프하여 오류가 있는지 확인하십시오. –

+0

결제 정보를 입력 한 후 오류가 발생하고 "계속"을 클릭하십시오. 기본적으로 내 맞춤 배송 모듈을 제거하고 캐시를 지워야하므로 기본 Magento 배송 방법이 작동해야한다고 생각하지만 오류가 발생합니다. –

답변

2

바와 같이 주석에 부분적으로 설명 된 오류 코드에서 유래 : $obj 위 코드에서

$obj = Mage::getModel($className); 
    if ($storeId) { 
     $obj->setStore($storeId); 
    } 

null로 설정된다.
귀하는 운송 회사를 분리했다고 명시하셨습니다.
먼저 이동 통신사를 비활성화하지 않았으므로 문제가 나타나는 것 같습니다.
config 테이블에서 캐리어가 활성화되어 있지만 연결된 모델이 없으므로 위의 코드는 실패합니다.

이 문제를 해결하려면 표 core_config_data에서이 경로 열이있는 레코드를 찾으십시오. carriers/CARRIER_CODE_HERE/active 여기서 CARRIER_CODE_HERE은 방금 제거한 운송 방법의 코드입니다.

줄을 찾았 으면 줄을 제거하십시오. 실제로 carriers/CARRIER_CODE_HERE/%과 같은 경로가있는 모든 것을 제거하십시오.
내가 틀린 경우를 대비하여 데이터베이스를 먼저 백업해야합니다.