1

以下の関数でgetInvoiceCollectionの結果をフィルタリングする方法を見つけようとしています。

// "eachInvoice" is each of the Invoice object of the order "$orders"
if ($order->hasInvoices()) {
    foreach ($order->getInvoiceCollection() as $eachInvoice) {
        $invoiceIncrementId = $eachInvoice->getIncrementId();
    }
}

以下のフィルターを$order->getInvoiceCollection()に追加できますか

 $order->getInvoiceCollection()
->addAttributeToFilter('created_at', array(
    'from' => $from_date,
    'to' => $today, 
    'date' => true,));

したがって、関数全体は、これを行う正しい方法であり、正しいようには見えません。

// "eachInvoice" is each of the Invoice object of the order "$orders"
    if ($order->hasInvoices()) {
    foreach ($order->getInvoiceCollection()$order->getInvoiceCollection()
    ->addAttributeToFilter('created_at', array( 'from' => $from_date,
    'to' => $today, 'date' => true,)) as $eachInvoice) {
        $invoiceIncrementId = $eachInvoice->getIncrementId();
    }
}

これを行うための「正しい方法」は何ですか?

4

1 に答える 1

4

サンプルコードに示されているように増分IDを取得するために、ループする必要はありません。

$invoiceCollection = $order->getInvoiceCollection();

$invoiceCollection
        ->addAttributeToFilter('created_at', array(
            'from'  => $from,
            'to'    => $to,                    
        ));

$incrementIds = $invoiceCollection->getColumnValues('increment_id');
于 2012-07-11T08:41:43.783 に答える