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

自動將已登錄用戶的ID添加到KeystoneJS外鍵字段中
P粉239164234
P粉239164234 2023-09-14 12:23:19
0
1
833

我正在使用KeystoneJS框架提供的文檔創(chuàng)建一個應用程序。所以,在我的應用程序中有兩個表,一個是用戶,另一個是帖子。所以,我想知道,當我通過登錄到管理區(qū)創(chuàng)建一個帖子時,有一個帶有外鍵列的字段,而且該字段為空,以填充來自用戶表的外鍵值。所以,當我使用KeystoneJS中登錄用戶的id創(chuàng)建一個新帖子時,我希望系統(tǒng)自動將外鍵值添加到作者中。

所以,我到處尋找解決方案,但未能找到合適的解決方案。

如果有人對此有任何想法,請回答這個問題,將不勝感激。

謝謝

P粉239164234
P粉239164234

全部回復(1)
P粉949190972

你有沒有看過受控博客示例?

它有類似于你的項目的列表:PostsUsers,可以是ContributorsModerators。在你的情況下,貢獻者/管理員的區(qū)別并不重要,你會對Post列表上的鉤子感興趣,特別是resolveInput.create鉤子,它看起來像這樣:

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

根據(jù)文檔

所以這是我們在保存之前更改值的機會,包括填充或強制值,比如你的Post.author字段。

resolveInput獲取context對象,其中包括對session對象的引用。該對象的內(nèi)容由你的會話存儲函數(shù)決定,但通常包含有關當前用戶的信息。在這個示例中,如果登錄的用戶是貢獻者,我們從context.session?.contributor?.id獲取他們的貢獻者ID,并將其保存到createdBy字段。同時,createdAt字段也設置為當前日期和時間。

請注意,由于此鉤子在列表級別配置,因此應返回整個項目的數(shù)據(jù)(基本上是resolvedData對象和鉤子想要進行的任何其他更改)。另一種方法是在字段級別添加resolvedData函數(shù),但這樣我們就需要兩個單獨的函數(shù) - 一個用于createdAt,另一個用于createdBy - 每個函數(shù)都會返回一個單一的值。有關此區(qū)別的更多信息,請參閱鉤子指南。

此外,重要的是不要將鉤子與訪問控制混淆 - 即是否應允許貢獻者首先創(chuàng)建帖子。在這個示例中,訪問控制是單獨配置的,在列表的access配置中。

最后一點 - 在撰寫本文時,鉤子API文檔涵蓋了resolveInput鉤子(在列表和字段級別),但沒有將其分解為不同的操作(即resolveInput.createresolveInput.update)。這只是一種最近的語法改進,它并不改變鉤子的使用方式。如果只使用文檔中的API,上面的代碼可以寫成:

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;
  },
  // 其他鉤子...
},
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板