2014-02-18 4 views
0

내가 모드 컨트롤러에서 데이터를 보내고에 배열로 입력 stdClass의 개체를 사용할 수 없습니다치명적인 오류 : PHP

나는 결과 아래에있어

, 내가 그리드 뷰에서 데이터를 표시하려고했다.

stdClass Object 
(
[Tmchb] => stdClass Object 
    (
     [item] => Array 
      (
       [0] => stdClass Object 
        (
         [Matnr] => 1006-1 
         [J3asize] => S 
         [Maktx] => STOCKHOLM-BLANC 
         [Clabs] => 42.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

       [1] => stdClass Object 
        (
         [Matnr] => 1006-10 
         [J3asize] => XXL 
         [Maktx] => STOCKHOLM-ROUGE 
         [Clabs] => 85.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

       [2] => stdClass Object 
        (
         [Matnr] => 1006-10 
         [J3asize] => XL 
         [Maktx] => STOCKHOLM-ROUGE 
         [Clabs] => 66.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

       [3] => stdClass Object 
        (
         [Matnr] => 1006-10 
         [J3asize] => S 
         [Maktx] => STOCKHOLM-ROUGE 
         [Clabs] => 58.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

       [4] => stdClass Object 
        (
         [Matnr] => 1006-10 
         [J3asize] => M 
         [Maktx] => STOCKHOLM-ROUGE 
         [Clabs] => 167.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

       [5] => stdClass Object 
        (
         [Matnr] => 1006-10 
         [J3asize] => L 
         [Maktx] => STOCKHOLM-ROUGE 
         [Clabs] => 230.0 
         [Incweek] => 
         [Zincmgstk] => 0.0 
        ) 

      ) 

    ) 

)

하지만이 같은 오류가 발생했습니다.

Fatal error: Cannot use object of type stdClass as array in `C:\xampp\htdocs\portal\components\com_portal\views\portal\tmpl\default_stock_details_list.php` on line 139 

$grid->CellData =$gridData[0];

이 내 PHP 코드

.

function JTPlatinumGrid1RowData($sender, $params) { 
$rows = &$params[ 1 ]; 
$rowdata=$rows; 
$alignArray1=array(); 
    foreach($rowdata as $key=>$val){ 
     $alignArray1[]=$key; 
    } 

     for($i=1; $i<=count($alignArray1); $i++){ 

     if($rows[$alignArray1[$i]]!= ''){ 
     $rows[$alignArray1[$i]] = '<div style="text-align:right;">' . $rows[$alignArray1[$i]] . ' </div>'; 
     } 
    } 

}  

나는이 오류는 당신이 배열했다으로 객체 필드에 접근하려는 의미

+0

는 더 설명 할'를 시도 할 수 있습니다? '$ gridData [0]'의 값은 무엇입니까? 어떤 변수에 해당 객체 배열 데이터가 들어 있습니까? –

답변

0

.. 무엇을해야하는지. 그것은 결코 작동하지 않을 것입니다.

$array_var = (array) $object_var; 
0

접근 객체 필드에 접근 배열 필드

$array[field_name] 

배열 개체를 캐스팅 어쩌면 당신은 유용 할 것이다에 대한

$object->field_name 

에 대한

것은 당신이 그것을 잘못을하고있다 방법. 말, $ 결과은 전체 stdClass 개체을가집니다. 다음 코드 세그먼트는 요소를 올바르게 인쇄해야합니다.

foreach ($result->Tmchb->item as $row) { 
    print $row->Matnr . " " . $row->J3asize; 
} 
0

귀하의 질문은 명확하지 않다, 그러나 당신의 필요에 따라 당신이 당신이`JTPlatinumGrid1RowData()를 사용하여 어디

foreach($grid->CellData->$gridData as row){ 
    echo row['your value']; 
}