CakePHP"同意TOS"复选框验证

gro*_*ino 10 validation cakephp

我想要一个Checkbox"同意TOS".

如果未选中复选框,我想发出一条Flash消息.

我该怎么做呢?

我的看法:

<?php   
        echo $form->create('Item', array('url' => array_merge(array('action' => 'find'), $this->params['pass'])));
        echo $form->input('Search', array('div' => false));
        echo $form->submit(__('Search', true), array('div' => false));
        echo $form->checkbox('tos', array('label' => false, 'value'=>1)).' Agree TOS'; 
        echo $form->error('tos');
        echo $form->end();
?>
Run Code Online (Sandbox Code Playgroud)

我的型号:

var $check = array(
            'tos' => array(
               'rule' => array('comparison', 'equal to', 1),
               'required' => true,
               'allowEmpty' => false,
               'on' => 'index',
               'message' => 'You have to agree TOS'
               ));
Run Code Online (Sandbox Code Playgroud)

Inv*_*ble 17

这似乎对我有用.希望它会有所帮助.

在模型中:

            'tos' => array(
                'notEmpty' => array(
                    'rule'     => array('comparison', '!=', 0),
                    'required' => true,
                    'message'  => 'Please check this box if you want to proceed.'
                )
Run Code Online (Sandbox Code Playgroud)

在视图中:

    <?php echo $this->Form->input('tos', array('type'=>'checkbox', 'label'=>__('I confirm I have read the <a href="/privacy-statement">privacy statement</a>.', true), 'hiddenField' => false, 'value' => '0')); ?>
Run Code Online (Sandbox Code Playgroud)


pap*_*han 0

我相信您需要尝试将其保存到您的模型中以捕获您的 tos 规则。我应该做类似的事情=

if(!$mymodel->save()){
 // catch error tos.
}
Run Code Online (Sandbox Code Playgroud)