2011-06-27 51 views
1

我使用Symfony 1.4.11。我有兩個表「公司」和「廣告」。當用戶添加新廣告時,他可以將廣告與他的公司連接。在我檢查之前,如果用戶有公司,例如我有變量$has_company,如果$has_company==1 - 用戶有公司,如果他沒有公司,則爲$has_company==0。如果用戶想要連接公司,他必須檢查複選框:-)所以我想驗證複選框,如果用戶選中複選框,並且他沒有公司,我想顯示消息,首先他必須創建公司....是有可能嗎?我可以使用sfValidatorBoolean嗎?如果是,如何驗證變量has_company?謝謝!如何在Symfony 1.4中驗證變量

回答

1

我想你可以在myUser類中創建一個方法來檢查當前用戶是否有公司(如果你的模型用戶和公司是鏈接的)。
然後,您可以在您的表單選項中傳遞此方法的結果。 進行驗證,您可以使用回調驗證:http://www.symfony-project.org/forms/1_4/en/B-Validators#chapter_b_sub_sfvalidatorcallback

+0

非常感謝您sfValidatorCallback正是我需要的),你是最好的;-)我也使用** [this](http://symfony-world.blogspot.com/2011/03/symfony-validate-database-content.html)**文章。 – denys281

+0

謝謝你的鏈接! – dxb

+0

嗯,但我有liitle問題)當驗證是通過,我檢查複選框,價值沒有設置分貝( – denys281

0

可以使用halt_on_error選項像

$v = new sfValidatorAnd(
    array(
    new sfValidatorString(array('max_length' => 255)), 
    new sfValidatorEmail(), 
), 
    array('halt_on_error' => true), 
    array('invalid' => 'The input value must be an email with less than 255 characters.') 
);