2016-04-05 14 views
1

GET isteğini v1/users uç noktasına göndermek istiyorum, param olarak belirtmek istediğim belirtmek istediğim belirtmek istediğim priority DESC ve status ASC.Yii2 RESTful GET isteği nasıl gönderilir ve paragraf olarak sıralama belirtilir

ben parçaları NEREDE SQL'e eşler params göndermek istediğiniz görebileceğiniz gibi:

benim HTTP isteğinde params olarak belirtmek nasıl yapayım

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

bu sıralamayı istediğiniz? Bunu yapmak için POST isteğinde JSON verilerini göndermem gerektiğini düşünüyorum. Ama bu bir problem, çünkü GET'in POST istememesini istemiyorum. post/users, kullanıcı oluşturmak anlamına gelir ve ben get kullanıcılarını istiyorum.

Ben bu

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

İlk gibi JSON nesnesi göndermek zorunda olacağı tahmin, bu GET isteği gönderdiğinizde böyle params'ı göndermek mümkün mü?
İkincisi, PHP'de cUrl kullanarak bu paramları nasıl gönderirsiniz? ile

+2

GET isteği v1/kullanıcıların öncelikli = desc & statü parametreler ekleyebilir = asc – PerroVerd

cevap

3

RESTfull API yerleşik Eğer sıralama ve çoklu özellikleri için virgül kullanabilirsiniz - DESC işareti '':

GET v1/users?sort=-priority,status 

yerine yerleşik onces bir özel işlem kullanıyorsa edin. ? serializer ilgili sayfalandırma üretebilir ve yukarıdaki parametreler suppoted olsun daima bir data provider örneğini dönmek emin olun:

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

belki nasıl biliyor musunuz İlgili tablo sütununa göre sıralıyorum? Profil tablosuyla profil ilişkisi olan profilim var. Genel işlev alanları() { $ fields = parent :: fields(); $ alanlar [] = 'profile'; $ alanları döndür; } '. Bu yüzden profile.created_at'a göre sıralamak istiyorum. Nasıl olduğunu biliyor musun ? –

+0

Bu durumda '$ actionsProvider-> sort-> attributes [' profile 'ile $ actionProvider-> sort-> öznitelikleri üzerinden' $ actions ['index'] ['prepareDataProvider'] 'seçeneğini geçersiz kılmanız ve özel' ActiveDataProvider 'örneğine sıralama eklemeniz gerekecek. ] = [..] '(bu örnekte olduğu gibi) geri dönmeden önce (http://www.ramirezcobos.com/2014/04/16/displaying-sorting-and-filtering-model-relations-on- a-GRIDVIEW-yii2 /). –

+0

Kişisel olarak Arama Sınıfını kullanıyorum. filtreleme ve sıralama yaptığım yer. Bu, bir daha [example] (http://webtips.krajee.com/filter-sort-calculated-related-fields-gridview-yii-2-0/) ile searchClass'ı nasıl oluşturacağınız hakkındadır. ve bu [REST'de nasıl kullanırım?] (http://stackoverflow.com/questions/25522462/yii2-rest-query/30560912#30560912) –