FOS Elastica を使用するリポジトリの単体テストを行っていますが、配列形式ではなく、クエリの文字列バージョンを取得する方法を誰かが知っているかどうか疑問に思っていました。これが私のリポジトリメソッドです:
/**
* Creates query object by either first or last name, with given parameters
*
* @param $name
*
* @param array $params
*
* @return Query
*/
public function findByFirstOrLast($name, array $params)
{
$queryString = new QueryString();
$queryString->setQuery($name);
$queryString->setFields(array('firstName', 'lastName'));
$query = new Query();
$query->setQuery($queryString);
$query->setSort(array($params['sort'] => array('order' => $params['direction'])));
return $query;
}
$name = 'foo';
(そして私は id でソートしていると仮定すると)、対応する FOS Elastica クエリは次のようになるはずです。
{
"query":
{
"query_string":
{
"query":
"foo",
"fields":["firstName","lastName"]
}
},
"sort":
{
"id":
{
"order":"asc"
}
}
}
クエリのこのjson文字列表現を取得する方法を知っている人はいますか? 必ずしもこのきれいな形式である必要はありません。1 行の文字列でもかまいません。