GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account. What is the current behavior? I am using GraphQL plugin and the query 'me' doesn't have for example a related content by the user, just the basics, id, username, email e.
Steps to reproduce the problem Create a content add a field and relation to a user and do a query "me" with the related content.
Do you have time to implement it? But it seems that the query is already implemented, can you confirm? Aurelsicoko the me Query exist but the topic is about related data of the user. Aurelsicoko I meant to actually get the related content of the user, like lauriejim said. Okay, I got it! I had the same issue before, so I changed UserPermissionsMe config file's scheme directly. And it worked. So, option 1 is the only option we have.
Thank you :. Aurelsicokois there any way to do it through the. I mean, it works, but I prefer not to modify packages plugins directly. When I attempted to apply the fix referenced by Aurelsicoko by adding a schema.
I believe this is due to some error with how Strapi handles the process of merging or replacing files with ones provided by the developer, possibly relating to. My fix for this was to create a new root type self that could be set as type UsersPermissionsUser.
This custom definition leverages the existing User.By default, the filters can only be used from find and count endpoints generated by the Content Type Builder and the CLI.
How to fetch items by slug with Strapi, Nuxt and GraphQl
We are taking advantage of the capability of qs to parse nested objects to create more complex queries. We strongly recommend using qs directly to generate complex queries instead of creating them manually. The filtering implicitly supports the AND operation when specifying an array of expressions in the filtering.
Restaurants that have a pricing greater than or equal to 20 and a pricing less than or equal to The query engine implicitly uses the OR operation when you pass an array of values in an expression.
When using the in and nin filters the array is not transformed into a OR. When creating nested queries, make sure the depth is less than 20 or the query string parsing will fail for now. Querying your API with deep filters may cause performance issues. If one of your deep filtering queries is too slow, we recommend building a custom route with an optimized version of your query. This feature doesn't allow you to filter nested models, e. Find users and only return their posts older than yesterday.
This feature isn't available for polymorphic relations. This relation type is used in mediacomponent and dynamic zone fields. NOTE We strongly recommend using qs directly to generate complex queries instead of creating them manually.
TIP This feature doesn't allow you to filter nested models, e. To achieve this, there are three options: Build a custom route. Modify your services. Use GraphQL.To get started with GraphQL in your app, please install the plugin first.
To do that, open your terminal and run the following command:. Install the ModHeader extension to set the Authorization header in your request. The Playground is enabled by default for both the development and staging environments, however it is disabled in production.
By changing the config option playgroundAlways to true, you can enable it. Security limits on maximum number of items in your response by default is limited tohowever you can change this on the following config option amountLimit. This should only be changed after careful consideration of the drawbacks of a large query which can cause what would basically be a DDoS Distributed Denial of Service. And may cause abnormal load on your Strapi server, as well as your database server.
You can also enable the Apollo server tracing feature, which is supported by the playground to track the response time of each part of your query. You can read more about the tracing feature from Apollo here. You can also enable Strapi as an implementing service for Apollo Federation, which allows you to set up Strapi as a service behind an Apollo Federation API gateway and allows you to add Strapi to a single exposed data graph across your organization.
You can read more about Apollo Federation here. For each model, the plugin auto-generates queries and mutations which just fit to your needs. The implementation of the mutations also supports relational attributes. For example, you can create a new User and attach many Restaurant to it by writing your query like this:.
You can also update relational attributes by passing an ID or an array of IDs depending on the relationship. Return the second decade of users which have an email that contains strapi. It automatically generates the type definition, queries, mutations and resolvers based on your models. The feature also lets you make complex query with many arguments such as limitsortstart and where.
If you use a local plugin, the controller methods of your plugin are not created by default. In order for the Shadow CRUD to work you have to define them in your controllers for each of your models. You can find examples of controllers findOnefindcreateupdate and delete there : Core controllers. If you've generated an API called Restaurant using the CLI strapi generate:api restaurant or the administration panel, your model looks like this:.
The queries and mutations will use the generated controller's actions as resolvers. It means that the restaurants query will execute the Restaurant. If you want to define a new scalar, input or enum types, this section is for you.
To do so, you will have to create a schema. This file has to be placed into the config folder of each API. Edit the definition attribute in one of the schema. The easiest way is to create a new model using the CLI strapi generate:model category --api restaurantso you don't need to customise anything. To explore the data of the new type Personyou need to define a query and associate a resolver to this query. The resolver parameter also accepts an object as a value to target a controller located in a plugin.
Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. I want to collect data from my collections and display it in my own plugin, for example 'Cars'. I have not found anything about this and do not know how to approach this.
Learn more. How to query collections from custom plugin in strapi? Ask Question.
Subscribe to RSS
Asked 1 month ago. Active 1 month ago. Viewed 40 times. Seajanjan Seajanjan 37 8 8 bronze badges. Active Oldest Votes.
Sign up or log in Sign up using Google. Sign up using Facebook. Sign up using Email and Password. Post as a guest Name. Email Required, but never shown. The Overflow Blog. Podcast Ben answers his first question on Stack Overflow.
The Overflow Bugs vs. Featured on Meta. Responding to the Lavender Letter and commitments moving forward. Related Hot Network Questions. Question feed.
When building a website with Strapi, you will have api endpoints to fetch items from the url right out of the box generated for you, but your api endpoints will be set up to fetch by the id of the article or item instead of a slug.
This is great for many cases as you may be accessing the data from a mobile app, and you won't need a user friendly slug anyways, or if you are wanting to update an item, you normally want to update items based on the id as this ensures you will only update the specific item you want to edit.CORS in Strapi, Upload File with GraphQL API using Altair - Kevin - 1-on-1 Meeting
Id's are unique and auto generated. In my case, I was considering using Strapi as a backend for a web app, and I want users to be able to access pages from SEO friendly and user friendly slugs.
Therefore, I did some research and implemented this feature in my project. My tech choice was Nuxt for the front end, Strapi for the backend, and GraphQl for my query language. Nuxt has built in functionality for Axios, and probably if I did an actual project with Strapi, I would just use Axios, as I am a fan of the Restful API convention, but I will leave that for another article.
If you want to learn how to do both of these things, then I recommend this tutorial series. It will also help if you know Vue, and how to create content types in Strapi. If not, you may have trouble with this. First, add a text field in your content type for a "slug" in the Strapi Admin panel. After you have added the text field, you can also edit the field to be read only by configuring the view in the panel as well.
You can add a placeholder that the slug will be automatically generated, so your editors don't think they need to edit it. Next, you will want to install the slugify node module. This is a sweet little package that does all of the hard work of creating a slug for you.
Now that you have installed the slugify package, you will want to configure the model of your content type. Strapi will have already built this for you. Then, add your options to the model. For my model, I wanted to save my slug from the name attribute, so this is what my. I also added the lower option to the slugify method so that my slugs would all be in lowercase.
You don't have to do that if you don't want to. Now, I had to create a GraphQl query to access my content items by slug. What this does, is filter the resultes based on the slug, which I will add as a perimeter in the route. This returns an array of items filtered back which then you can use in your Vue page.
If you haven't already, add a directory in your pages directory for your content type. As mine is companies, my directory was companies. This is important, as Nuxt will automatically generate routes for you based on your directory and page names. I had a page inside my companies directory of index. Now, you will want to import the graphql query and use it to fetch your company via apollo.
Great work! Normally you will want to add an index page where you will see all of your items or a paginated set of them.You can just call strapi.
These queries handle for you specific Strapi features like componentsdynamic zonesfilters and search.
This method returns a list of entries matching Strapi filters. You can also pass a populate option to specify which relations you want to be populated. This method returns the first entry matching some basic params. When updating an entry with its components or dynamiczones beware that if you send the components without any id the previous components will be deleted and replaced. You can update the components by sending their id with the rest of the fields:.
Deletes and entry and return its value before deletion. You can delete multiple entries at once with the passed params. Returns entries based on a search on all fields allowing it.
Returns the total count of entries based on a search. When you want to customize your services or create new ones you will have to build your queries with the underlying ORM models. Then you can run any queries available on the model. You should refer to the specific ORM documentation for more details:. Queries Strapi provides a utility function strapi. API Reference. Examples Find by id : strapi. Examples Find one by id : strapi. Example strapi. Examples Update by id strapi. Examples Delete one by id strapi.
Examples Count by district strapi. Examples Search first ten starting at 20 strapi.GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account.
How to use where programmatically in a model? What is the correct syntax to query a relational field? Thank you odelucca. So I need to write a plugin with services, controllers etc just to do a simple query? Isn't there any simpler solution?
My products model has 70 boolean values size, spreads count and other variables and each product has different ones selected like c, c, c etc. Right now I'm checking in a switch loop what value is enabled and return a dynamic model:.
But, in order to this run, you need to create a query file. If you don't have the queries folder, just create it. If you are using MySQL the file needs to be named as bookshelf.
If you want a simple MySQL query, that will return all matching params, you can use this one that I named find :. We use optional third-party analytics cookies to understand how you use GitHub. Learn more. You can always update your selection by clicking Cookie Preferences at the bottom of the page.
For more information, see our Privacy Statement. We use essential cookies to perform essential website functions, e. We use analytics cookies to understand how you use our websites so we can make them better, e.
Skip to content. Dismiss Join GitHub today GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together. Sign up. New issue. Jump to bottom. How to use where in a model query?
Labels type: help wanted. Copy link Quote reply. Right now I'm checking in a switch loop what value is enabled and return a dynamic model: module. Please check how work generated services.
Sign up for free to join this conversation on GitHub.