国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Ajouter automatiquement l'ID de l'utilisateur connecté au champ de clé étrangère KeystoneJS
P粉239164234
P粉239164234 2023-09-14 12:23:19
0
1
834

Je crée une application en utilisant la documentation fournie par le framework KeystoneJS. Ainsi, dans mon application, j'ai deux tables, l'une est Users et l'autre est Posts. Donc, je me demande, lorsque je crée une publication en me connectant à la zone d'administration, il y a un champ avec une colonne de clé étrangère, et ce champ est vide pour être rempli avec la valeur de clé étrangère de la table des utilisateurs. Ainsi, lorsque je crée une nouvelle publication en utilisant l'identifiant de l'utilisateur connecté dans KeystoneJS, je souhaite que le système ajoute automatiquement la valeur de la clé étrangère à auteur.

J'ai donc cherché partout une solution mais je n'ai pas trouvé de solution adaptée.

Si quelqu'un a des idées à ce sujet, il serait grandement apprécié qu'il puisse répondre à cette question.

Merci

P粉239164234
P粉239164234

répondre à tous(1)
P粉949190972

Avez-vous vu l'Exemple de blog contr?lé??

Il a une liste similaire à votre projet?: PostsUsers,可以是ContributorsModerators。在你的情況下,貢獻者/管理員的區(qū)別并不重要,你會對Post列表上的鉤子感興趣,特別是resolveInput.createHooks, elle ressemble à ceci?:

hooks: {
  resolveInput: {
    create: ({ context, resolvedData }) => {
      resolvedData.createdAt = new Date();
      if (context.session?.contributor) {
        return {
          ...resolvedData,
          createdBy: {
            connect: {
              id: context.session?.contributor?.id,
            },
          },
        };
      }
      return resolvedData;
    },
  },
  // 其他鉤子...
},

Selon Documentation?:

C'est donc notre opportunité de modifier la valeur avant de sauvegarder, notamment en remplissant ou en for?ant une valeur comme votre champ Post.author.

resolveInput Obtient l'objet context resolveInput獲取context對象,其中包括對session對象的引用。該對象的內(nèi)容由你的會話存儲函數(shù)決定,但通常包含有關(guān)當前用戶的信息。在這個示例中,如果登錄的用戶是貢獻者,我們從context.session?.contributor?.id獲取他們的貢獻者ID,并將其保存到createdBy字段。同時,createdAt, qui inclut la référence A à l'objet session. Le contenu de cet objet est déterminé par votre fonction de stockage de session

, mais contient généralement des informations sur le informations actuelles sur l'utilisateur. Dans cet exemple, si l'utilisateur connecté est un contributeur, nous obtenons son identifiant de contributeur à partir de context.session?.contributor?.id et l'enregistrons dans createdByField. Dans le même temps, le champ createdAt est également défini sur la date et l'heure actuelles.

resolvedData對象和鉤子想要進行的任何其他更改)。另一種方法是在字段級別添加resolvedData函數(shù),但這樣我們就需要兩個單獨的函數(shù) - 一個用于createdAt,另一個用于createdByNotez que puisque ce hook est configuré au niveau de la liste, il doit renvoyer des données pour l'élément entier (en gros - chaque fonction renvoie une valeur unique. Pour plus d'informations sur cette différence, consultez le Hooks Guide

.

De plus, il est important de ne pas confondre les hooks avec le Contr?le d'accèsaccess - c'est-à-dire si un contributeur doit être autorisé à créer une publication en premier lieu. Dans cet exemple, le contr?le d'accès est configuré séparément, dans la configuration

de la liste.

Une dernière remarque?: au moment de la rédaction, la documentation de l'API Hooks resolveInput鉤子(在列表和字段級別),但沒有將其分解為不同的操作(即resolveInput.createresolveInput.updatecouvre

). Il s'agit simplement d'une amélioration récente de la syntaxe, cela ne change pas la fa?on dont les hooks sont utilisés. Si vous utilisez uniquement l'API dans la documentation, le code ci-dessus peut s'écrire ainsi : ??
hooks: {
  resolveInput: ({ operation, context, resolvedData }) => {
    // 僅對創(chuàng)建操作運行(忽略更新)
    if (operation !== 'create') return resolvedData;
    resolvedData.createdAt = new Date();
    if (context.session?.contributor) {
      return {
        ...resolvedData,
        createdBy: {
          connect: {
            id: context.session?.contributor?.id,
          },
        },
      };
    }
    return resolvedData;
  },
  // 其他鉤子...
},
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal