mirror of
https://github.com/strapi/strapi.git
synced 2025-08-19 22:27:18 +00:00
1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{195:function(t,s,a){"use strict";a.r(s);var e=a(0),n=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[t._m(0),t._v(" "),a("p",[t._v("See the "),a("router-link",{attrs:{to:"./../concepts/concepts.html#filters"}},[t._v("filters' concepts")]),t._v(" for details.")],1),t._v(" "),a("div",{staticClass:"note custom-block"},[a("p",[t._v("by default, the filters can only be used from "),a("code",[t._v("find")]),t._v(" endpoints generated by the Content Type Builder and the "),a("router-link",{attrs:{to:"./../cli/CLI.html"}},[t._v("CLI")]),t._v(". If you need to implement a filters system somewhere else, read the "),a("a",{attrs:{href:"#programmatic-usage"}},[t._v("programmatic usage")]),t._v(" section.")],1)]),t._v(" "),t._m(1),t._v(" "),a("p",[t._v("The available operators are separated in four different categories:")]),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),a("p",[t._v("Easily filter results according to fields values.")]),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7),t._v(" "),t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),a("p",[t._v("Sort according to a specific field.")]),t._v(" "),t._m(11),t._v(" "),a("p",[t._v("Sort users by email.")]),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),a("p",[t._v("Limit the size of the returned results.")]),t._v(" "),t._m(14),t._v(" "),a("p",[t._v("Limit the result length to 30.")]),t._v(" "),t._m(15),t._v(" "),t._m(16),t._v(" "),a("p",[t._v("Skip a specific number of entries (especially useful for pagination).")]),t._v(" "),t._m(17),t._v(" "),a("p",[t._v("Get the second page of results.")]),t._v(" "),t._m(18),t._v(" "),t._m(19),t._v(" "),a("p",[t._v("Requests system can be implemented in custom code sections.")]),t._v(" "),t._m(20),t._v(" "),a("p",[t._v("To extract the filters from an JavaScript object or a request, you need to call the "),a("router-link",{attrs:{to:"./../api-reference/reference.html#strapiutils"}},[a("code",[t._v("strapi.utils.models.convertParams")]),t._v(" helper")]),t._v(".")],1),t._v(" "),t._m(21),t._v(" "),t._m(22),t._v(" "),t._m(23),t._v(" "),t._m(24),t._m(25),t._v(" "),t._m(26),t._v(" "),t._m(27),t._v(" "),t._m(28)])},[function(){var t=this.$createElement,s=this._self._c||t;return s("h1",{attrs:{id:"filters"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#filters","aria-hidden":"true"}},[this._v("#")]),this._v(" Filters")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"available-operators"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#available-operators","aria-hidden":"true"}},[this._v("#")]),this._v(" Available operators")])},function(){var t=this.$createElement,s=this._self._c||t;return s("ul",[s("li",[s("a",{attrs:{href:"#filters"}},[this._v("Filters")])]),this._v(" "),s("li",[s("a",{attrs:{href:"#sort"}},[this._v("Sort")])]),this._v(" "),s("li",[s("a",{attrs:{href:"#limit"}},[this._v("Limit")])]),this._v(" "),s("li",[s("a",{attrs:{href:"#start"}},[this._v("Start")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"filters-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#filters-2","aria-hidden":"true"}},[this._v("#")]),this._v(" Filters")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[a("code",[t._v("=")]),t._v(": Equals")]),t._v(" "),a("li",[a("code",[t._v("_ne")]),t._v(": Not equals")]),t._v(" "),a("li",[a("code",[t._v("_lt")]),t._v(": Lower than")]),t._v(" "),a("li",[a("code",[t._v("_gt")]),t._v(": Greater than")]),t._v(" "),a("li",[a("code",[t._v("_lte")]),t._v(": Lower than or equal to")]),t._v(" "),a("li",[a("code",[t._v("_gte")]),t._v(": Greater than or equal to")]),t._v(" "),a("li",[a("code",[t._v("_contains")]),t._v(": Contains")]),t._v(" "),a("li",[a("code",[t._v("_containss")]),t._v(": Contains case sensitive")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples","aria-hidden":"true"}},[this._v("#")]),this._v(" Examples")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Find users having "),s("code",[this._v("John")]),this._v(" as first name.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("GET /user?firstName=John")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Find products having a price equal or greater than "),s("code",[this._v("3")]),this._v(".")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("GET /product?price_gte=3")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"sort"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sort","aria-hidden":"true"}},[this._v("#")]),this._v(" Sort")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"example"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example","aria-hidden":"true"}},[this._v("#")]),this._v(" Example")])},function(){var t=this.$createElement,s=this._self._c||t;return s("ul",[s("li",[this._v("ASC: "),s("code",[this._v("GET /user?_sort=email:asc")])]),this._v(" "),s("li",[this._v("DESC: "),s("code",[this._v("GET /user?_sort=email:desc")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"limit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#limit","aria-hidden":"true"}},[this._v("#")]),this._v(" Limit")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"example-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-2","aria-hidden":"true"}},[this._v("#")]),this._v(" Example")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("GET /user?_limit=30")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"start"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#start","aria-hidden":"true"}},[this._v("#")]),this._v(" Start")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"example-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-3","aria-hidden":"true"}},[this._v("#")]),this._v(" Example")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("code",[this._v("GET /user?_start=10&_limit=10")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"programmatic-usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#programmatic-usage","aria-hidden":"true"}},[this._v("#")]),this._v(" Programmatic usage")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"extracting-requests-filters"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#extracting-requests-filters","aria-hidden":"true"}},[this._v("#")]),this._v(" Extracting requests filters")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"note custom-block"},[s("p",[this._v("The returned objects is formatted according to the ORM used by the model.")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"example-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-4","aria-hidden":"true"}},[this._v("#")]),this._v(" Example")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("strong",[this._v("Path —")]),this._v(" "),s("code",[this._v("./api/user/controllers/User.js")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token comment"}},[t._v("// Define a list of params.")]),t._v("\n"),a("span",{attrs:{class:"token keyword"}},[t._v("const")]),t._v(" params "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v("'_limit'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token number"}},[t._v("20")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v("'_sort'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v("'email'")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{attrs:{class:"token comment"}},[t._v("// Convert params.")]),t._v("\n"),a("span",{attrs:{class:"token keyword"}},[t._v("const")]),t._v(" formattedParams "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" strapi"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("utils"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("models"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("convertParams")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token string"}},[t._v("'user'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" params"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{attrs:{class:"token comment"}},[t._v("// { limit: 20, sort: 'email' }")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"query-usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#query-usage","aria-hidden":"true"}},[this._v("#")]),this._v(" Query usage")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h4",{attrs:{id:"example-5"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-5","aria-hidden":"true"}},[this._v("#")]),this._v(" Example")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[s("strong",[this._v("Path —")]),this._v(" "),s("code",[this._v("./api/user/controllers/User.js")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("module"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n find"),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token comment"}},[t._v("// Convert params.")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("const")]),t._v(" formattedParams "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" strapi"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("utils"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("models"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("convertParams")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token string"}},[t._v("'user'")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" ctx"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("request"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("query"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{attrs:{class:"token comment"}},[t._v("// Get the list of users according to the request query.")]),t._v("\n "),a("span",{attrs:{class:"token keyword"}},[t._v("const")]),t._v(" filteredUsers "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{attrs:{class:"token keyword"}},[t._v("await")]),t._v(" User\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("find")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("where")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("formattedParams"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("where"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("sort")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("formattedParams"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("sort"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("skip")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("formattedParams"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("start"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{attrs:{class:"token function"}},[t._v("limit")]),a("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("formattedParams"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("limit"),a("span",{attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{attrs:{class:"token comment"}},[t._v("// Finally, send the results to the client.")]),t._v("\n ctx"),a("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("body "),a("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" filteredUsers"),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])}],!1,null,null,null);n.options.__file="filters.md";s.default=n.exports}}]); |