Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

여기를 보면 변수를 'friend.target_srl'로 입력을 해줘야 하는 것 같습니다.

저한테는 매우 생소한 형태인데요ㅜ

https://github.com/rhymix/rhymix/blob/56e94fac7db9bc46c3294c6cc5d2c3a4371c7936/modules/communication/queries/getFriends.xml#L12

 

스킨단에서 이 쿼리를 실행해서 member_friend 테이블의 friend_srl 필드를 가져오려 했습니다.

(friend_srl이 있어야 ajax에서 친구 삭제가 바로 가능하겠더라구요)

 

그런데 이게 될 리가 없는데....

                        {@
                            $args = new stdClass();
                            $args->member_srl = $logged_info->member_srl;
                            $args->friend.target_srl = $member_srl;
                            $output = executeQuery('communication.getFriends', $args, ['friend_srl']);
                            debugPrint($output);
                        }

 

$args->friend.target_srl 얘를 어떻게 처리하는 게 좋을지요?

아니면 그냥 맘 편하게 직접 쿼리를 짜는 게 좋을지...

  • profile
    저거 뜻은 var으로 선언되는게 아니라 friend가 적힌 alias의 테이블 member_friend에서 target_srl 에 적힌 값으로 member.member_srl 칼럼에 대입시켜서 찾는다는 뜻입니다.

    만약 다른 target_srl 필요하다면 따로 쿼리 만드셔야 합니다.
  • profile profile
    아 이해했습니다ㅜ
    member_srl과 target_srl을 입력해서 member_friend의 friend_srl을 가져오는 쿼리는 없었군요;;;;
  • profile
    JOIN 조건을 저렇게 쓴 것 같은데... 쿼리문이 이상하게 작성되어 있네요.
  • profile profile

    네ㅜㅜ 근데 친구 기능을 진짜 사용들을 안 하나봐요. 해당 쿼리의 최근 커밋이 2008년 ㄷㄷ

    암튼 그건 그거고ㅎ

     

    일단 필요한 기능은 직접 쿼리로 했습니다.

    SELECT friend_srl FROM `rx_member_friend` AS `member_friend` WHERE member_srl = ? AND target_srl = ?

    (첫 번째 ?에는 본인의 $logged_info->member_srl, 두 번째 ?에는 다른 회원의 $member_srl이 들어갑니다. 물론 둘이 친구라는 전제하에요ㅎ)

     

    friend_srl이 필요한 게 ... 커뮤니케이션 모듈 바깥에서 (쪽지를 보내거나 친구 등록을 바로 할 수 있는 것처럼) 친구 취소를 바로 하려면  폼을 따로 만들거나 ajax로 procCommunicationDeleteFriend를 실행해줘야 하는데, 어찌됐든 friend_srl이 있어야 하더라구요.

    현재로서는 friend_srl을 가져오려면 직접 쿼리를 짜야만 하는데요.

    다른 모듈에서도 friend_srl을 가져올 수 있도록 함수나 쿼리가 제공되면 좋을 것 같습니다.

    (앗, 이슈로 남길 걸...)