2017-09-25 77 views
0

我有一个帖子创建方法:Vibe.d基本形式验证

void gönderiyiOluştur(HTTPServerRequest istek, HTTPServerResponse yanıt) 
{ 
    render!("gönderiler/oluştur.dt")(yanıt); 
} 

和后存储方法是这样的:

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的Web框架时,基本表单验证非常简单。基本步骤是:

  1. 创建一个类Gönderiyi并把你的kaydet方法这个类里面:

    class Shipment { 
        @method(HTTPMethod.POST) 
        void kaydet() { ... } 
    } 
    
  2. 定义应在情况下,验证失败,被称为类中的方法。此方法应显示错误消息:

    void getError(string _error = null, HTTPServerResponse res) { ... } 
    
  3. 注释kaydet方法与@errorDisplay属性的方法与误差函数进行连接:

    class Shipment { 
        @method(HTTPMethod.POST) 
        @errorDisplay!getError 
        void kaydet() { ... } 
        void getError(string _error = null, HTTPServerResponse res) { ... } 
    } 
    
  4. 现在做kaydet方法内的验证和在发生错误时抛出异常。然后自动调用getError方法。您也可以利用参数绑定和转换。当D参数名称与HTML输入值的名称相同时,则此值绑定到D参数。自动类型转换发生(例如到int),并可能导致异常,然后在getError方法中处理异常。

  5. 当你需要使用Web框架注册类最后一步:

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

你应该the documentation of errorDisplay,并在web framework example from vibe.d看看了。