downvote를 치기 전에, 제목에서 들릴지 모르겠지만 질문은 우스꽝스러운 것이 아닙니다.골란에서 체크 박스를 체크하는 관용적 인 방법
내가 아이템과 카테고리를 가지고 있다고 말하십시오. 항목은 여러 범주에 속할 수 있습니다.
사용자가 항목을 작성하는 데 필요한 정보를 채우고 모든 카테고리를 체크 박스 목록 (아래 코드 참조)으로 나열하여 사용자가 어떤 카테고리 (하나 또는 여러 항목)를 확인할 수 있도록하는 기본 HTML 양식이 있습니다. 생성되는 항목이에 속해야합니다.
지금까지 모든 것이 잘되었습니다.
그러나 사용자가이 항목을 편집 할 때 해당 항목이 현재 속한 범주를 쉽게 볼 수 있도록 항목이 속한 카테고리가있는 체크 박스 목록을 체크 표시로 표시하고 싶습니다. 선택을 취소하십시오.
쉬운 소리.
그래서 우리는
1) SELECT * FROM Item WHERE Id = 3 (gets us the item we want to edit)
2) SELECT * FROM Categories WHERE 1 (gets ALL categories)
3) SELECT CategoryId FROM ItemCategories WHERE ItemId = 3 (gets the categoryids for the categories the item belongs to)
범주를 표시하기위한 HTML (모든 범주)이 보일 것이다 무언가 (예를 들어, 나는 = 3 ID로 항목을 편집 할) 컨트롤러에서 다음 쿼리 같은 것을 할 것이다 그래서이
<form>
...
{{range .Categories}}
<input name="cat" type="checkbox" value="{{ .Id }}" /> {{ .Title}} <br />
{{end}}
...
</form>
처럼, 내가 일반적으로 수행하고 싶은 것하는 것은 단지 ItemCategories이 결과에 아이디가있는 경우 확인 등으로 설정하면, 범위 카테고리 당 할 수있을 것입니다 HTML 코드를 체크인합니다. 이것을 위해 FuncMap을 사용하는 것은 어렵 기 때문에 체크 된 카테고리가있는 슬라이스를 메서드에 전달할 수 없기 때문에 프레젠테이션 레이어에서이 작업을 수행하는 방법을 알면 약간의 어려움이 있습니다 필요한 데이터를 보유하고 있는지 확인하십시오.
물론 컨트롤러에서 여러 가지 방법으로이 작업을 수행 할 수 있습니다 (두 번째 및 세 번째 쿼리의 두 결과를 구조체로 병합 한 후 HTML 출력을 빌드하고 HTML 페이지로 전달) 그러나 나는 아직도 golang을 코딩하는 법을 배우기 때문에 다른 사람들이 이런 유형의 상황을 어떻게 해결할 것인지를 확인하기를 원합니다.
감사합니다.