
ソートメソッドを探す
前回データストアからデータ取得をする事ができました。

NCMB PHP-SDK【PHP7.2で使えない!?】修正方法教えます!
PHP-SDKを探してみる
PHPでNifty Cloud Mobile Backend(以下Ncmb)を使ってみます。
調べて...
今回は取得時にソートをする方法について調べてみました。
javascript SDKのサンプル
NCMBのjavascriptのサンプルでは下記のように設定する事でソートが可能です。
saveData.order("createDate",true)
.fetchAll()
.then(function(results){
//全件検索に成功した場合の処理
console.log("全件検索に成功しました:"+results.length+"件");
//テーブルにデータをセット
setData(results);
})
SQLでもおなじみのOrderメソッドが提供されて、ソート対象となるフィールド列名を指定することでソートが可能です。
PHP-SDKのQuery・NcmbObject(前回修正)クラスを探しますが、メソッドや外部プロパティは見つかりません。
SDKソースを解析する
SDKの解析でfindメソッドでREST API文字列を生成し、文字列を構成しているgetOptionsメソッドまでたどり着きました。
プロパティアクセス用外部メソッドを実装する
getOptionsプロパティを確認すると下記のようになっています。
public function getOptions()
{
<中略>
if ($this->limit >= 0) {
$opts['limit'] = $this->limit;
}
<中略>
if ($this->orderBy) {
$opts['order'] = implode(',', $this->orderBy);
}
<中略>
return $opts;
}
内部変数のOrderBy配列に文字列を格納して、Queryクラスにメソッドを追加します。
public function orderBy($n)
{
$this->orderBy[] = $n;
return$this;
}
■イメージ図(品番ソートを実施)
表示させたい順番に表示できました。
図で『AC_062』は削除と追加の影響で、最終レコードになっていました。
まとめ
NCMBはクライアント系言語から使いやすい分、サーバサイドからは使いにくい部分があります。
メリット・デメリットを考慮して、使い方は割り切る必要があります。
今後もSDKの使用方法など情報発信していきたいと思います。
スポンサーリンク