2012-06-06 4 views
0

CakePHP에서 작은 프로젝트를 시작 했으므로 다음에 어떻게 대처할 수 있을지 잘 모르겠습니다.
사용자, 게시물 및 사용자가 있다고합니다. PostsUser. 사용자는 게시물과 hasMany 관계를 맺습니다.
PostsUser는 게시물을 읽은 사용자 (userId, postId 및 만든 날짜가 있음)를 나타냅니다.CakePHP 다른 컨트롤러에 모델 저장하기

이제 내 게시물 목록에서 PostsController의 "markRead"메소드를 읽는 것으로 표시 할 링크를 클릭 할 수 있기를 바랍니다.

이제 Post.User에 PostsUser를 저장하는 방법에 대해 궁금한 점이 있습니다. $ uses를 추가하고 PostsUser를 추가하는 방법에 대해 읽었지만 작동하지 않습니다.

둘째로 올바른 방법일까요? posts/markRead/14 URL을 사용하는 것이 좋겠지 만 이것을 바꾸려면 기꺼이 할 것입니다.

답변

1

Controller :: uses를 사용하는 것은 나쁜 습관으로 간주됩니다. 관련 모델은 연관을 통해 액세스해야합니다.

PostsController :: markAsRead() 메소드 내부에서 ClassRegistry :: init ('PostsUser')를 사용하여 모델의 인스턴스를 가져 와서 해당 객체에서 메소드를 호출 할 수 있습니다.

Controller::loadModel()을 사용하십시오.

링크 이름을 지정하는 경우 PostsUsersController :: markAsRead() 및 use the router을 사용하여/posts/markAsRead/: id를 PostsUsersController로 라우팅 할 수 있습니다.