sql >> データベース >  >> RDS >> Mysql

Magentoの製品コレクションオブジェクトとカタログ/製品モデルを理解するのに助けが必要

    Magentoからデータにアクセスする方法はいくつかあります:

    • load()=>を使用して、モデルに関連するすべてのデータ(属性)をロードします。それは非常に遅く、パフォーマンスを低下させます。商品の場合、商品ページでのみload()を使用する必要があります(そのページで使用するすべてのデータは単一のオブジェクトに関連しているため、完全に読み込むことができます)

    • コレクションの使用=>オブジェクトのリストを取得する必要がある場合は、(少なくとも)コレクションを使用する必要があります。取得する属性リストを決定するのはあなた次第です。選択/フィルタリングに属性を追加すると、コレクションはバックグラウンドでEAVテーブルなどへのSQL結合を実行できます

    • カスタムSQLの使用=>複雑なオブジェクトを処理する場合、コレクションは遅くなる可能性があります(コレクションは必要のないテーブルへの多くのSQL結合を初期化します)... BDDからデータにアクセスする最後の方法は、ResourceModelに独自のSQLを作成することです

    表示するスクリプトには、大きなエラーがあります。コレクションを反復処理するforeach内に完全なモデルをロードします。製品をload()する必要がある場合は、コレクションに属性が見つからなかったためだと思いますか?その場合、属性を取得するためにコレクションを変更するだけで済みます...

    たとえば、製品の場合、magentoは、インスタンス化する製品->コレクションに属性を自動的に追加(または削除)する方法を提供します。 (Mage_Catalogのconfig.xmlのfrontend / product / collection / attributes XMLタグを参照してください)



    1. Windowsメッセージを送信するMySQLユーザー定義関数

    2. 4バイトのUnicodeをmysqlに挿入することによって発生する警告

    3. MySQLでトランザクションの一時停止はどのように機能しますか?

    4. MySQLはDATE文字列をDATETIMEフィールドの文字列と比較します