私はデータを取得しています:
$mydata = $this->ProductList->find('all', array('order' => 'rand()', 'conditions' => array('name' => 'we love')));
製品モデルとのHABTM関係を設定しました。ご覧のとおり、「大好き」リストのすべての商品を取得しています。ここで、取得している製品をランダム化する必要があります。ただし、そうではありません。代わりに、SQLで確認できるように、MySQLはProductListモデルでランダム化されます。何故ですか?代わりに、製品でランダムフェッチを取得するにはどうすればよいですか?
結果のMySQLクエリ:
SELECT `ProductList`.`id`, `ProductList`.`name` FROM `database`.`product_lists` AS `ProductList` WHERE `name` = 'we love' ORDER BY rand() ASC
SELECT `Product`.`id`, `Product`.`category_id`, `Product`.`name`, `Product`.`price`, `Product`.`description`, `ProductListsProduct`.`product_list_id`, `ProductListsProduct`.`product_id` FROM `database`.`products` AS `Product` JOIN `database`.`product_lists_products` AS `ProductListsProduct` ON (`ProductListsProduct`.`product_list_id` = 3 AND `ProductListsProduct`.`product_id` = `Product`.`id`)