たとえば、次の 3 つのテーブルがあります。
- 製品
- 商品画像
- 製品仕様
そして、この 3 つのテーブルのモデルには1 対 1 の関係があります。
ページに 50 個の製品を表示すると、サイクル内で +2 個の余分なクエリが取得されるため、合計で 150 行とクールなオブジェクトがあります。
$products = Products::find();
foreach ($products as $product)
{
$product->name;
$product->images->filename;
$product->specs->volume;
}
または、Products モデルでカスタム メソッドを作成し、必要なすべてのテーブルを結合します。
$products = Products::getComplete();
foreach ($products as $product)
{
$product->name;
$product->imageFile;
$product->specVolume;
}
だから、私は疑問に思っています:最初の練習は役に立ちますか?MySQLデーモンに高い負荷をかけたり、phpスクリプトの実行時間を大幅に遅くしたりしないでください?