2016-12-30 3 views
0

У меня есть это в моей GridView:Сумма элементов в Еогеасп yii2

[ 
    'value' => function ($data) { 
     $summ = 0; 
     $str = 0; 
     foreach($data->itemsOrder as $request) { 
      $str .= $request->order_items_quantity; 
      $summ += $str; 
     } 

     return $summ; 
    }, 
], 

я получаю что-то вроде этого «123» в колонке клетки, но не «6». Как я могу получить сумму элементов?

+0

изменение $ ул = $ request-> order_items_quantity. до $ str = $ request-> order_items_quantity; –

ответ

1
gridview [ 
      'value' => function ($data) { 
       $summ = 0; 
       $str = 0; 
       foreach($data->itemsOrder as $request) { 
        //$str .= $request->order_items_quantity; //this means you are concating string each time which you dont need to do 
        $str = $request->order_items_quantity; 
        $summ += $str; 
       } 

       return $summ; 
      }, 

     ], 

Надеется, что вы получите смысл . в PHP

1

Попробуйте это ..

gridview [ 
      'value' => function ($data) { 
       $summ = 0; 
       $str = 0; 
       foreach($data->itemsOrder as $request) { 
        $summ +=$request->order_items_quantity; 
       } 

       return $summ; 
      }, 

     ], 
1

Поскольку вы конкатенацию строки и не добавляя номер.

Так заменить $str .= $request->order_items_quantity;

с

$str += floatval($request->order_items_quantity); 

или если order_items_quantity представляет собой целое

$str += intval($request->order_items_quantity); 
Смежные вопросы