| 제목 | Call to a member function get_by_od_id() on array 에러 관련 | ||
|---|---|---|---|
| 글쓴이 | 에반스 | 작성시각 | 2015/12/05 00:02:09 | 
|  | |||
| 아래와 같은 에러에 대해 문의 드립니다. Call to a member function get_by_od_id() on array 컨트롤러 
	function test(){
		$this->load->model('cart');
		$this->load->model("Orders");
		$order = $this->orders->get_by_od_id("1512049909");
		
		$dat = $this->cart->get_total_shipping_cost("1512049909", "ev_cart_order");
		
	}위에서 첫번째 get_by_od_id 함수는 실행 잘 됩니다. cart 모델 
class Cart extends MY_MODEL {
    var $isLogged;
    var $ss_id;
    var $free_shipping;
    function __construct() {
        parent::__construct();
        if(!isset($this->session->userdata['isLogged'])){
            $this->isLogged = FALSE;
        }else{
            $this->isLogged = TRUE;
        }
        if(!$this->session->userdata["ss_id"]) $this->session->set_userdata("ss_id", md5($this->input->server('REMOTE_USER').time()));
        $this->ss_id = $this->session->userdata["ss_id"];
        $free = array("some"=>50000, "dome"=>200000);
        if($this->session->userdata['level'] == "dome") $this->free_shipping = 200000;
        elseif($this->session->userdata['level'] == "kiup") $this->free_shipping = 0;
        else $this->free_shipping = 50000;
        if($this->session->userdata['language'] <> "korean"){
            $this->op_weight = "op_weight_en as op_weight";
            $this->free_shipping = 0;
        }else{
            $this->op_weight = "op_weight";
        }
    }    
function get_total_shipping_cost($ss_id="",$table="ev_cart"){
    	if($table != "ev_cart"){
    		
    		$order = $this->orders->get_by_od_id($ss_id);
    		$level = $this->customers->get_level($order['mb_id']);
    		$amount = $order['od_amount'] - $order['od_shipping_cost'];
    		$box = $this->box_qty("", true, $ss_id, $table);
    		$language = ($order['od_type'] == "oversea")?"english":"korean";
    	}else{
    		if(!$ss_id) $ss_id = $this->session->userdata['ss_id'];
    		
    		$order = $this->session->userdata['order'];
    		$level = $this->session->userdata['level'];
    		$amount = $order['od_amount'];
    		$box = $this->box_qty($ss_id, true);
    		$language = $this->session->userdata('language');
    	}
		$tCost = 0;
    	if($order['od_country_receipt'] <> "KR"){
    		$costs = $this->ems_cost($order['od_country_receipt'], true, "english", $box);
    		$box = array_merge($costs);
    		foreach ($box['ems_sm_box'] as $b) {
    			$tCost += $b['cost'] * $b['qty'];
    		}
    		foreach ($box['ems_lg_box'] as $b) {
    			$tCost += $b['cost'] * $b['qty'];
    		}
    		$box['total_shipping_cost'] = $tCost;
    	}else{
    		$long_cost = $this->long_distence_cost($order['od_zipcode_receipt'], $box);
    		if( $this->check_free_shipping($level,$amount) ){
    			$sm_cost = 0;
    		}else{
    			$sm_cost = 2500;
    		}
			foreach ($box['sm_weight'] as $b) {
				$tCost += ($b['qty'] * $sm_cost) + ($b['qty'] * $long_cost) ;
			}
			foreach ($box['lg_weight'] as $b) {
				$tCost += ($b['qty'] * $sm_cost) + ($b['qty'] * $long_cost) ;
			}
		
    		$box['total_shipping_cost'] = $tCost;
    	}
    	return $box;
    }
}
위 에서 31번줄에 get_by_od_id 에서 글제목과 같은 에러가 납니다. 이유가 뭔지 모르겠네요. 이전에는 잘 되다가 갑자기 되지 않네요. 혹시 원인을 아시는 분 계십니까? | |||
| 다음글 | 세션 재 질문 (4) | ||
| 이전글 | 다시 simple_post질문 (아래글좀 지워주세요) (1) | ||
| 
                                한대승(불의회상)
                                /
                                2015/12/05 11:31:02 /
                                추천
                                0
                             | 
| 
                                에반스
                                /
                                2015/12/07 14:09:25 /
                                추천
                                0
                             
                                아하! 그걸 미쳐 생각 못했습니다. 정말, 감사합니다. ㅠ_ㅠ
                             | 
cart 생성자 함수에서 미리 orders 모델을 로드 하면 해결 됩니다.