2012-04-24 52 views
0

在控制器中,我正在驗證註冊表單域的輸入。我正在做簡單驗證,如必填字段,電子郵件驗證等。有沒有方法可以輕鬆地將錯誤消息插入到Fuelphp驗證輸出的輸出中?

當我成功提交時,我繼續嘗試創建用戶(我正在使用Sentry包)。我希望能夠從這個過程中捕獲錯誤,然後將它們附加到驗證錯誤並將它們附加到特定字段。例如:如果電子郵件已存在,我想向「電子郵件字段」插入一個錯誤並給它一個自定義錯誤消息。

我希望有一些簡單的方法來做到這一點,如(僞代碼):

$ validation->錯誤() - > insert_error($ FIELD_NAME,$消息)

任何簡單的方法來做到這一點?

回答

0

原生Validation類不允許使用該類。

但我可以看到2個解決方案爲您的問題。

第一溶液(沒有測試,這只是爲了讓這個想法):

<?php 
class CustomFieldError { 
    function rule_which_always_fail($val) { 
     return false; 
    } 
} 
function insert_error($validation, $field_name, $error) { 
    $validation->field($field_name)->->add_rule(array('CustomFieldError', 'rule_which_always_fail'))->set_message($error); 
} 

// You need to do that before $validation->run(); 
if ($duplicate_email) { 
    insert_error($validation, 'email', 'Duplicate email'); 
} 

解決方法二: Replace and extends的\燃油\核心\驗證類自己。 這樣你就可以直接加入insert_error()方法的驗證類中,並加入錯誤$this->errors['field_name'] = 'Error message';

[編輯]如果你想使用第二個解決方案,也一定要提交他們在功能請求他們Github跟蹤器:)

相關問題