質問: :test_id ", ['test_id' => $test_id] )->findMany(); ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) PHP5.3 mysql
回答: git上にも似た質問がありましたが、raw_queryを使う旨が記載されていました。 gitからダウンロードして、`idiorm.php`と`paris.php`の中に「union」の文字がないか検索してみましたが見つかりませんでしたので、`union`構文を簡易的に使える機能はないのだと思われます。 なので、「クエリ1回でデータを取得したい」なら、今のように素のSQLを書くしかなさそうですね・・。 もし「素のSQLを書きたくない」方を優先するなら、 今の提示コードくらいのunionの結果で良いのであれば、テーブル1つめと2つめは別々にデータを取得し、取得結果をphp側でまとめるのでも良さそうです。 `findMany()`の戻り値は、キーが数字の配列ですので`array_merge`で簡単にマージすることができます。 中身のインスタンスについては、1つ目のテーブルと2つ目のテーブルでModelクラスが異なり、さらに同じ項目として参照したい別名のカラムがあるかもしれませんが、この場合は`as xxxx`と取得名を指定できるように`select`、`selectMany`等を使って指定すれば、同じ名前のプロパティとして参照可能になるはずなので、マージ後もModelの差を意識せずに処理できるのではないかと思います。 ※idiormを実際の開発業務などで使ったことはありません。。。その点ご了承ください。