2017-09-25 4 views
0

나는 게시물이 방법을 만들 수 있습니다Vibe.d 기본 양식 유효성 검사

void gönderiyiKaydet(HTTPServerRequest istek, HTTPServerResponse yanıt) 
{ 
    auto başlık = istek.form["baslik"]; 
    auto içerik = istek.form["icerik"]; 

    bool yayınla = false; 

    if (başlık.length > 0) 
    { 

     Gönderi gönderi = Gönderi(başlık, içerik); 

     gönderi.kaydet(); 
     yanıt.redirect("/"); 
    } 
    else 
    { 
     yanıt.redirect("/gönderiler/oluştur"); 
    } 
} 

내가 기본 양식 유효성 검사를하고 싶습니다. 예를 들어 입력 필드가 비어 있으면 이전 페이지로 리디렉션됩니다.

나는 .. 나는 등 빈 안 baslik 필드처럼 만드는 방법에 일부 오류 메시지를 전달해야

을 가정하지만 프레임 워크에 아주 새로운 오전 이후로는 알아낼한다. 프레임 워크가 폼 유효성 검사를 위해 제공하는 기능이 있습니까?

답변

1

vibe.d의 웹 프레임 워크를 사용하면 기본 양식 유효성 검사가 쉽습니다. 기본 단계는 다음과 같습니다

  1. 클래스 Gönderiyi를 만들고이 클래스 내부에 kaydet 방법을 넣어 :
    class Shipment { 
        @method(HTTPMethod.POST) 
        void kaydet() { ... } 
    } 
    
  2. 은 검증이 실패 할 경우 호출 할 필요가 클래스 내부의 방법을 정의합니다. 이제 kaydet 방법 내부 검증을하고

    class Shipment { 
        @method(HTTPMethod.POST) 
        @errorDisplay!getError 
        void kaydet() { ... } 
        void getError(string _error = null, HTTPServerResponse res) { ... } 
    } 
    
  3. :

    void getError(string _error = null, HTTPServerResponse res) { ... } 
    
  4. 이 주석 @errorDisplay 속성으로 kaydet 방법은 오차 함수와 방법을 연결 :이 방법은 오류 메시지를 표시한다 오류가 발생하면 예외를 throw합니다. 그런 다음 getError 메서드가 자동으로 호출됩니다. 매개 변수 바인딩 및 변환도 활용할 수 있습니다. D 매개 변수 이름이 HTML 입력 값의 이름과 같으면이 값은 D 매개 변수에 바인드됩니다. 자동 유형 변환이 발생하여 (예 : int) 예외가 발생하여 getError 메소드에서 처리됩니다.

    auto router = new URLRouter; 
    router.registerWebInterface(new Gönderiyi); 
    

당신도 the documentation of errorDisplay에서와 web framework example from vibe.d에보고해야한다 : 웹 프레임 워크 클래스를 등록 할 필요가 마지막 단계로

  • .