2016-11-07

Adonis Tutorial : 관리자 수정하기


  • xyz/resources/views/mgmt/admin/update_form.njk 을 작성한다.
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <h4 class="modal-title">관리자 수정</h4>
    </div>
    <div class="modal-body">
      <form name="update_form" action="/mgmt/admin/update" method="post">
        {{ csrfField }}
        <div class="form-group">
          <label>아이디</label>
          <input type="text" name="userid" class="form-control" readonly required pattern="[a-zA-Z0-9]+" value="{{ admin.userid }}"/>
          <input type="hidden" name="id" class="form-control" value="{{ admin.id }}" />
        </div>
        <div class="form-group">
          <label>별명 <small>(필수)</small></label>
          <input type="text" name="nick" class="form-control" required value="{{ admin.nick }}"/>
        </div>
        <div class="form-group" style="text-align: right">
          <input class="btn btn-primary" type="submit" value="관리자 수정" />
        </div>
      </form>
    </div>
  • xyz/Http/Controllers/Mgmt/AdminController.js 에 다음을 추가한다.
    ...
     
      // 관리자 수정 폼
      // /mgnt/admin/update_form/:id
      * update_form (request, response) {
        const admin = yield Admin.find(request.param('id'))
        yield response.sendView('mgmt/admin/update_form', { admin: admin.toJSON() })
      }
     
    ...
  • xyz/app/Http/routes.js 에 다음을 추가한다.
      Route.get('/admin/update_form/:id', 'Mgmt/AdminController.update_form').as('mgmt_admin_update_form')
  • 이제, 수정 버튼을 클릭하면 수정할 수 있는 폼이 나타나게 될 것이다. 마지막으로 실제로 수정을 처리하는 루틴을 작성하고 라우터에 등록하자.
  • xyz/app/Model/Admin.js 에 다음을 추가한다.
    ...
     
      static * update (id, nick) {
        let admin = yield this.find(id)
        admin.nick = nick
        yield admin.save()
      }
     
    ...
  • xyz/Http/Controllers/Mgmt/AdminController.js 에 다음을 추가한다.
    ...
     
      // 관리자 수정
      // /mgmt/admin/update
      * update (request, response) {
        let id = request.input('id')
        let nick = request.input('nick')
     
        yield Admin.update(id, nick)
        response.route('mgmt_admin')
      }
     
    ...
  • xyz/app/Http/routes.js 에 다음을 추가하고, 수정 작업을 진행해보자.
      Route.post('/admin/update', 'Mgmt/AdminController.update').as('mgmt_admin_update')


댓글 없음:

댓글 쓰기