2016-06-28 3 views
0

У меня есть небольшой скрипт, созданный в CakePHP, где я могу генерировать кавычки, однако элементы котировки, по-видимому, отсортированы неспециально в моем PDF-файле. Каков наилучший способ сортировки по идентификатору по возрастанию?сортировать в cakephp/fpdf

Ниже мой соответствующий фрагмент кода, который будет перечислять все элементы на моей цитате:

foreach ($items as $item) { 
     $itemSubTotal = $item['quantity'] * $item['unit_price']; 
     $discount_rate=$item['discount_rate']; 
     $unit_price=$item['unit_price']; 
     $subTotal += $itemSubTotal; 
     $itemDiscount=$itemSubTotal*$discount_rate/100; 
     $discount+=$itemDiscount; 
     //$itemTax = $itemSubTotal * ($item['tax_rate']/100); 
     $itemTax = ($itemSubTotal - $itemDiscount) * ($item['tax_rate']/100); 
     $tax += $itemTax; 
     $itemSubTotal = $itemSubTotal*((100-$discount_rate)/100); 
     $itemSubTotal = number_format($itemSubTotal, 2, '.', ','); 
     $y+=5; 
     $pdf->setXY(5, $y); 
     $pdf->MultiCell(10, 5, $i++, 0, 'L'); 
     $pdf->setXY(15, $y); 
     //$pdf->MultiCell(30, 5, $item['title'], 0, 'L'); 
     $pdf->Cell(30, 5, $item['title'], 0, 2, 'L'); 
     $pdf->setXY(45, $y); 
     //$pdf->MultiCell(80, 5, $item['details'], 0, 'L'); 
     $pdf->Cell(30, 5, $item['details'], 0, 2, 'L'); 
     $pdf->setXY(125, $y); 
     $pdf->MultiCell(20, 5, $item['quantity'], 0, 'R'); 
     $pdf->setXY(145, $y); 
     $pdf->MultiCell(15, 5, number_format($unit_price, 2, '.', ','), 0, 'R'); 
     $pdf->setXY(160, $y); 
     $pdf->MultiCell(20, 5, number_format($discount_rate, 2, '.', ','), 0, 'R'); 
     $pdf->setXY(180, $y); 
     $pdf->MultiCell(25, 5, $itemSubTotal, 0, 'R'); 
    } 

Некоторой квалифицированная помощь будет высоко ценится, спасибо

ответ

0

Я не пробовал это, но он должен работать , Посмотрите на cake 3 collections и, в частности, sortBy

Если вы оберните свои $ items в коллекцию, а затем отсортируйте их, а затем перейдите через них, вы достигнете своей цели. Что-то вроде:

use Cake\Collection\Collection; 

$collection = new Collection($items); 
$sortedByField = $collection->sortBy('field') 

Если это не работает, поиграйте с другими методами, как GroupBy

+0

Большое спасибо за полезную проницательность, оценили – Dan

+0

Рад, что смог помочь Дэну –

Смежные вопросы