
구라(GuLa) 입니다 ㅋㅋㅋㅋ
그누보드는 외주용 라라벨은 개인 프로젝트나, 공부용으로 사용중인데,
슬슬 laravel이 익숙해서 laravel로 만들때 기존의 그누보드로 만든 사이트들과
연동이 힘들다 보니 릴레이션 정도만들어 쓰던 모델들을 조금 다듬어 패키지로 만들어 봤습니다.
간단한 예제를 들자면,
만약 free, notice, event 게시판에 mb_id가 test123인 유저가 쓴 글을 가져오고 싶다면,
기존에는
foreach (['free', 'notice', 'event'] as $board) {
$result = sql_query("SELECT * FROM g5_write_{$board} WHERE mb_id = 'test123'");
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$posts[] = $row;
}
}
이런식으로 (더 나은 방법이 있을겁니다) 가져오지만,
GuLa를 설치한 laravel에선,
G5Member class를 확장해 각 게시판과 릴레이션을 추가한 후
G5Member::where('mb_id', '=', 'test123')->with(['free' ,'notice', 'event'])->get();
혹은
G5Member::whereMbId('test123')->with(['free' ,'notice', 'event'])->get();
요렇게 심플하게 바뀝니다.
편하기는 한데 laravel에 대한 지식이 어느정도 필요하고 퍼포먼스적인 부분을 위한 최적화가 필요할 수 있어서 (그리고 저도 아직 개발에 미숙하다보니) 사용에 어려움이 있을 수 있을 수 있지만, 빡신 개발을 하시는 분들에게 조금이나마 도움이 되었으면 합니다.
댓글 9개
그리고 보통 g5_board에서 게시판 이름을 읽어와서 자동으로 맵핑하는 방법은 없나요?
blog라는 게시판을 만들면, 이것을 읽어서 g5_write_blog 라는 테이블 이름을 만들고
이것을 사용해서 Dynamic table mapping으로 그 게시판을 읽어 올수 있게도 가능할까요?
하다가 막힌 부분이
1. dynamic table name
2. id 가 없어서 relationship꾸미기 힘든것
3. wr_option set type
등이 였던 것 같습니다.
일단 따로 모델 생성없이 g5_write_ 자동으로 릴레이션 해주는 기능은 v1.1.0으로 업데이트 하시면 with 메소드까지 모두 정상적으로 작동합니다. (ex. $admin->with('g5WriteFree'))
다만 다이나믹하게 class를 생성하는거다 보니 g5_board에 있는것들을 자동으로 파싱해서 모델을 만들어주는 명령어를 추가할 계획은 있습니다 ㅋㅋㅋ
막히신 부분의 1,2번은 아마 github에서 코드 보시면 조금은 도움이 되실것같습니다ㅎㅎ;
3번 같은 경우엔 저도 미처 생각못한 부분이라 테스트를 한번 해봐야겟네요 ;;
게시글 목록
| 번호 | 제목 |
|---|---|
| 1717629 | |
| 1717626 | |
| 1717625 | |
| 1717621 | |
| 1717619 | |
| 1717611 | |
| 1717610 | |
| 1717609 | |
| 1717607 | |
| 1717601 | |
| 1717598 | |
| 1717591 | |
| 1717590 | |
| 1717583 | |
| 1717575 | |
| 1717572 | |
| 1717568 | |
| 1717566 | |
| 1717549 | |
| 1717545 | |
| 1717533 | |
| 1717512 | |
| 1717511 | |
| 1717508 | |
| 1717495 | |
| 1717479 | |
| 1717473 | |
| 1717470 | |
| 1717463 | |
| 1717452 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기