es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

[Strapi v4]: Cómo OBTENER contenido creado por un usuario en particular en Strapi CMS.

Tengo un caso de uso en el que quiero obtener contenido creado por un usuario específico. Cada vez que intento obtenerlo con GET, obtengo todos los datos creados por diferentes usuarios.

Escenario 1:
1. Tengo un usuario administrador llamado “admin”. Creé un tipo de contenido de lista de inventario con campos de nombre y descripción.
2. Creé 5 filas de datos según el tipo de contenido de la lista de inventario.

Escenario 2:
1. Tengo otro usuario llamado “testA”.
2. Creé 4 filas de contenido de lista de inventario iniciando sesión como testA.

Ahora quiero recuperar la lista de inventario creada por el usuarioA. Supongamos que tengo un punto final público para obtener GET /stock-lists, ¿cómo puedo hacer eso?
Actualmente, cuando hago GET /stock-lists, obtengo todos los datos creados por el usuario admin y el usuario testA combinados.

¿Alguien puede ayudar?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para recuperar el contenido creado por un usuario en particular, puedes utilizar parámetros de consulta en tu solicitud GET para filtrar los resultados según la ID del usuario. Suponiendo que tienes una propiedad de ID en tu modelo de usuario y una propiedad de createdBy en tu modelo de lista de existencias que hace referencia a la ID del usuario que lo creó, puedes modificar la URL de la solicitud GET de la siguiente manera:

    GET /stock-lists?createdBy=

    Reemplaza con la ID del usuario cuyo contenido deseas recuperar. Esto debería devolver solo los elementos de la lista de existencias que fueron creados por ese usuario. Si estás utilizando Strapi como tu CMS, puedes usar las capacidades de filtrado incorporadas para lograr esto. Aquí tienes un ejemplo de cómo podría lucir el código:

    const stockLists = await strapi.query('stock-list').find({
      createdBy: ID_usuario
    });
    

    Esto devolverá una matriz de objetos de lista de existencias que fueron creados por el usuario con la ID ID_usuario. Luego puedes devolver esta matriz como una respuesta JSON al cliente.

Comments are closed.