2016-04-05 1 views
1

v1/usersエンドポイントにGETリクエストを送信したいところです。ここではパラメータとして、priority DESCstatus ASCで注文したいとします。Yii2 RESTful GET要求を送信してパラメータとして並べ替えを指定する

あなたは、私が部品SQLにマップされますのparams送りたい見ることができるように:

SELECT * FROM table WHERE something ORDER BY priority DESC, status ASC

がどのように私は、私は、このソートをしたい、私のHTTPリクエスト中のparamsとして指定することが出来るのですが?これを行うには、POSTリクエストでJSONデータを送信する必要があると思います。しかし、それは問題です。私はPOSTではなくGET要求をしたいからです。 post/usersはユーザーを作成することを意味し、ユーザーはgetになります。

私は、私はこの

"sort":[ {"priority":"DESC", "status":"ASC"} ]

まずようにJSONオブジェクトを送信する必要があろうと推測し、それはあなたがGETリクエストを送信するとき、このようのparamsを送信することは可能でしょうか?
第2に、PHPでcUrlを使用してこれらのパラメータをどのように送信しますか?

あなたはソートやマルチ属性のカンマを使用することができます内蔵のRESTfullのAPIと
+2

は、GETリクエストV1 /ユーザー優先= DESC&状況にパラメータを追加= ASC – PerroVerd

答えて

3

「 - 」DESCの看板:

GET v1/users?sort=-priority,status 

を代わりに内蔵されたoncesのカスタムアクションを使用している場合。 ?serializerは、関連ページネーションを発生させることができ、上記のparamsはsuppotedますので、常にdata providerインスタンスを返すようにしてください:

// instead of: return $modelClass::find()->all(); 
return new ActiveDataProvider([ 
    'query' => $modelClass::find(), 
]); 
+0

あなたは多分どのようにすることができます知っていますか私は関連テーブルの列でソートしますか?私はプロファイルテーブルとのプロファイル関係であるプロファイルを提出しています。 'public関数のフィールド() { $ fields = parent :: fields(); $ fields [] = 'プロフィール'; return $ fields; } '。だから私はprofile.created_atでソートしたいと思います。どのようにするか知っていますか ? –

+0

この場合、$ actions ['index'] ['prepareDataProvider'] 'をオーバーライドし、' $ dataProvider-> sort-> attributes ['profile']を介してカスタム 'ActiveDataProvider'インスタンスにソートを追加する必要があると思います] = [..] 'を返す前に[この例では](http://www.ramirezcobos.com/2014/04/16/displaying-sorting-and-filtering-model-relations-on- a-gridview-yii2 /)。 –

+0

私は個人的に検索クラスを使用します。それは私がフィルタリングと並べ替えを行う場所です。これはsearchClassをどのようにしてcutomizeするかに関するもう1つの例です(http://webtips.krajee.com/filter-sort-calculated-related-fields-gridview-yii-2-0/)。これは[どのように私はそれをRESTで使うのですか?](http://stackoverflow.com/questions/25522462/yii2-rest-query/30560912#30560912) –

関連する問題