라이믹스 트리거 질문드립니다!
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.1 |
public function triggerBeforeInsertComment($obj)
{
또 뭔가 기능 개발이 필요해서 모듈을 스스로개발해보고 있습니다!
댓글 작성 전 실행할 트리거인데요
혹시 인자로 전달받는 obj에서 "현재 작성하려는 댓글이 달린 문서 번호" 를 가져오는 방법이 있을까요?
즉, A라는 사람이 작성한 글에 B라는 사람이 댓글을 작성할때 해당 트리거가 실행되는데
A라는 사람이 작성한 글(댓글이 달리는 글)의 document_srl을 불러오는 방법이 궁금합니다.
댓글 10
그냥 obj->document_srl 에 들어가 있을거에요.
그런데 이미 확실하게 obj에 들어가있으니 그거 사용하셔도 될 것 같아요.
https://github.com/rhymix/rhymix/blob/master/modules/comment/comment.controller.php#L401 이 시점 이전에 만들거든요
근데 새롭게 댓글을 작성하는 과정에서 첨부 파일이 없다면 $obj->comment_srl 은 null 입니다.
if(!$obj->comment_srl)
{
$obj->comment_srl = getNextSequence();
}
이렇게 코드넣어서 새로운 comment_srl 을 미리 넣어 넘겨도 무관합니다.
그렇게 하면 실제 댓글과 전혀 상관없는 시퀀스 번호가 되지요.
글 번호를 알고 싶다고 하셨는데 왜 댓글 번호 얘기가 나왔는지 모르겠습니다만
댓글 번호가 필요한 경우 before가 아닌 after에서 트리거를 잡아야겠지요.
아하 댓글 번호가 아니라 글번호엿군요..
$obj->document_srl 을 쓰면 될텐데요.. 대댓글 타레들을 보니 뭔가 작동이 안되는 식으로 이해가 되어 comment_srl 을 before에서 가져올려고 하는 것으로 이해했었습니다..;ㅁ;
필요한 내용을 깔끔하게 정리해서 $obj에 담아드렸는데 굳이 왜 다른 곳을 참조하나요?
Context에 document_srl이 있다 해도 현재 댓글 작성 대상 문서번호와 일치한다는 보장이 없습니다.
Context는 공용 공간이기 때문에 다른 애드온이나 모듈들도 건드릴 수 있거든요.