더북(TheBook)

10.3.4 포스트 목록 보기

전체 포스트 목록을 출력하는 기능을 작성해 보자.

 

Index 액션 작성

포스트 컨트롤러에 Index 액션을 추가하기 위해 app/controller/post.go 파일에 다음 코드를 추가한다.

▼ app/controllers/post.go

func (c Post) Index() revel.Result {
    var posts []models.Post
    rows, err := c.Txn.Query("select id, title, body, created_at, updated_at from posts
    order by created_at desc")
    if err != nil {
        panic(err)
    }
     
    for rows.Next() {
        post := models.Post{}
        if err := rows.Scan(&post.Id, &post.Title, &post.Body, &post.CreatedAt, &post.UpdatedAt); err != nil {
            panic(err)
        }
        posts = append(posts, post)
    }
     
    return c.Render(posts)
}

전체 포스트 목록을 조회하여 posts 변수에 저장했다. c.Render(posts)로 렌더링해주면 뷰에서 posts 변수에 접근할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.