KeystoneJS 프레임워크에서 제공하는 문서를 사용하여 애플리케이션을 만들고 있습니다. 내 앱에는 두 개의 테이블이 있습니다. 하나는 Users이고 다른 하나는 Posts입니다. 그래서 관리자 영역에 로그인하여 게시물을 생성하면 외래 키 열이 있는 필드가 있는데 해당 필드는 사용자 테이블의 외래 키 값으로 채워지기 위해 비어 있습니다. 그래서 KeystoneJS에 로그인한 사용자 ID를 사용하여 새 게시물을 작성할 때 시스템이 자동으로 author에 외래 키 값을 추가하도록 하고 싶습니다.
그래서 해결책을 찾기 위해 여기저기 찾아봤지만 딱 맞는 해결책을 찾을 수 없었습니다.
혹시 이에 대해 좋은 생각이 있으신 분이 계시다면, 이 질문에 답변해 주시면 정말 감사하겠습니다.
감사합니다
통제 블로그 예제를 보셨나요?
프로젝트와 유사한 목록이 있습니다:
으아아아Posts
和Users
,可以是Contributors
或Moderators
。在你的情况下,贡献者/管理员的区别并不重要,你会对Post
列表上的钩子感兴趣,特别是resolveInput.create
Hooks, 다음과 같습니다:Documentation에 따르면:
따라서 이는 저장하기 전에
Post.author
필드와 같은 값을 채우거나 강제 적용하는 등 값을 변경할 수 있는 기회입니다.
에 의해 결정되지만 일반적으로 다음에 대한 정보를 포함합니다. 현재 사용자 정보. 이 예에서는 로그인한 사용자가 기여자인 경우resolveInput
다음을 포함하는context
객체resolveInput
获取context
对象,其中包括对session
对象的引用。该对象的内容由你的会话存储函数决定,但通常包含有关当前用户的信息。在这个示例中,如果登录的用户是贡献者,我们从context.session?.contributor?.id
获取他们的贡献者ID,并将其保存到createdBy
字段。同时,createdAt
를 가져옵니다.session
개체에 대한 참조입니다. 이 객체의 콘텐츠는 세션 저장소 기능context.session?.contributor?.id
에서 기여자 ID를 가져와createdBy
Field에 저장합니다. 동시에createdAt
필드도 현재 날짜 및 시간으로 설정됩니다.resolvedData
对象和钩子想要进行的任何其他更改)。另一种方法是在字段级别添加resolvedData
函数,但这样我们就需要两个单独的函数 - 一个用于createdAt
,另一个用于createdBy
이 후크는 목록 수준에서 구성되므로 전체 항목에 대한 데이터를 반환해야 합니다(기본적으로 - 각 함수는 단일 값을 반환합니다. 이 차이점에 대한 자세한 내용은 Hooks Guide또한 후크를 액세스 제어
구성에서 액세스 제어가 별도로 구성됩니다.access
와 혼동하지 않는 것이 중요합니다. 즉, 기여자가 먼저 게시물을 작성할 수 있도록 허용해야 하는지 여부입니다. 이 예에서는 목록의마지막 참고사항 - 이 글을 쓰는 시점에는 Hooks API 문서
). 이는 최근 구문 개선일 뿐이며 후크 사용 방법은 변경되지 않습니다. 문서에서 API만 사용하는 경우 위 코드는 다음과 같이 작성할 수 있습니다. 🎜 으아아아resolveInput
钩子(在列表和字段级别),但没有将其分解为不同的操作(即resolveInput.create
和resolveInput.update
가 다루고 있습니다