0

ホームページに最新の製品を含むコレクションを作成しようとしています。これまでの私のコードは次のとおりです。

$_productCollection = clone $this->getLoadedProductCollection();

$_productCollection->clear()
 ->setPageSize(40)
 ->setOrder('created_at', 'desc')
 ->load();

これは 40 個の製品を返していますが、正しい順序ではありません。

私は非常に多くのことを試しました...誰かが私を助けることができますか?

4

4 に答える 4

0

または、php ファイルで直接クエリを実行して、ごまかして ID のリストを取得することもできます。

SELECT entity_id, sku FROM catalog_product_entity ORDER BY created_at DESC LIMIT 0,40;

期待どおり、結果は entity_id で注文した場合と同じになります。

于 2012-04-07T22:51:02.383 に答える
0

正確な問題が何であるかはわかりませんが、問題を解決するための便利なデバッグ方法を次に示します。

オブジェクトで使用可能なメソッドを使用して、いつでもコレクション クエリを調べることができZend_Db_Selectます。たとえば、あなたの場合、次を実行できます。

echo (string) $_productCollection->getSelect()->assemble();

メソッド呼び出しにtrueパラメーターとして追加して、ブラウザーにクエリを出力することもできます。->load()->load(true)

于 2012-04-07T09:12:32.383 に答える
0

最初にオブジェクトをきれいにする必要があります。そうするために:

$_productCollection = $this->getLoadedProductCollection()
   ->clear()
   ->addAttributeToSort('created_at', 'DESC');

created_at の他に、name、updated_at、sku などを使用できます。

それが役に立てば幸い。

于 2015-01-13T02:07:35.227 に答える
0

コレクションで次のものを使用します。

        $collection->addAttributeToSort('news_from_date', 'desc');
    $collection->addAttributeToSort('created_at', 'desc');
于 2013-04-18T17:05:33.573 に答える