質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

1回答

2680閲覧

FuelPHPのORMモデルを使ってランダム(rand())に取得する方法

PenelopeG

総合スコア31

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2016/03/16 00:24

編集2016/03/16 04:04

以下のように結果をランダムに取得したい場合、

SQL

1SELECT 2 col_name 3FROM 4 table_name 5ORDER BY rand();

FuelPHPのクエリビルダであれば

PHP

1DB::select('col_name') 2 ->from('table_name') 3 ->order_by( DB::expr('rand()') ) 4 ->execute();

といった具合に「DB::expr()」を使えば良いという情報を見つけました。

では、
FuelPHPのORMモデルを使いたい場合はどのように記述すれば良いのでしょうか?
調べてもクエリビルダの場合のことしかヒットしないため
質問させていただきました。
ご教授のほど、よろしくお願いします。
(FuelPHP 1.7で実装しています。)

追記:
以下のように条件式部分で「ORDER BY rand()」を指定したい場合です。

PHP

1Model_xxx::find('all', 条件式);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaranthine

2016/03/16 02:34 編集

ORマッパーを利用したとしても、同様に(それぞれのDBテーブルに対して)クエリビルダを用いることが出来るかと思いますが、has_many/many_manyなどで、関連DBを呼び出す際にrand()などを使いたいということなのでしょうか?(それともModel_うんたら::find('all', 条件式);の条件式部分で使いたい?)
PenelopeG

2016/03/16 04:05

情報が不足しておりました。Model_うんたら::find('all', 条件式);の条件式部分で使いたい場合で質問させていただきました。 質問文にその旨追記しました。
guest

回答1

0

ベストアンサー

ソース見たら行けそうだったので、試したらそのまま行けました。

php

1//条件式 2$cond = array( 3 'where' => array(), 4 'order_by' => array(DB::expr('rand()')) 5); 6 7//query 8$datas = Model_hogehoge::find('all', $cond); 9

投稿2016/03/16 08:40

amaranthine

総合スコア501

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PenelopeG

2016/03/16 15:05

早速の回答をありがとうございます。実現できました!!!助かりました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問