YII
特定のモデルに関連付けられるたびに関連するモデルを取得したり、少なくとも発生した回数のカウントを取得したりするにはどうすればよいですか?
問題:注文
のテーブルと製品のテーブルがあります。各製品は、0回以上の注文に関連付けられています。
YIIの標準のリレーショナルツールを使用して、製品が注文された回数を確認するにはどうすればよいですか?
私は共同テーブルを通じて多対多の関係を築き、それを使って私の関係を宣言しました
'products'=>array(self::MANY_MANY, 'Product', 'index_order_products(order_id, product_id)')
問題は、$ order-> productsを呼び出すと、関連するたびに製品ではなく、一意の製品のみが返されることです。
注文した各商品がいくつあるかを知るだけでいいので、試してみました
'products'=>array(self::MANY_MANY, 'Product', 'index_order_products(order_id, product_id)', 'select'=>'*, COUNT(product_id) as count', 'group'=>'product_id')
しかし、それから私がそれを呼ぼうと$order->products[0]->count
すると、カウントが定義されていないと言います。
データベースに空の列数を作成することで、これを回避することができました。このようにして必要な数を取得しますが、確かにもっと良い方法があるはずです。
YIIでこのようなことをする正しい方法は何でしょうか?