CakePHP错误验证

时间:2013-03-07 16:45:25

标签: php html cakephp

我有一个有验证的cakephp表单。验证本身可以正常工作但在单击提交后出现错误时,它只会生成一些文本。

为什么我没有颜色。例如,它意味着以红色显示错误。

控制器

    <div class="users form">
            <?php echo $this->Form->create('Ticket'); ?>
                <fieldset>
                    <legend><?php echo __('Purchase'); ?></legend>



                        <?php
                            echo $this->Form->input('first_name');
                            echo $this->Form->input('last_name');
                            echo $this->Form->input('email');
                            echo $this->Form->input('phone');
                            echo $this->Form->input('date', array('options'=> $dates));
                            echo $this->Form->input('quantity', array('options' => $maxAmount, 'default' => '1'));
                        ?>
                </fieldset>
                    <?php   
                        echo $this->Form->end(__('Purchase')); 
                    ?>
            </div>

模型

    public $validate = array(
    'first_name' => array(
        'rule'     => '/^[a-zA-Z]{1,}$/i',
        'message'  => 'Alphabets only',
        'required' => true
    ),
    'last_name' => array(
        'rule'     => '/^[a-zA-Z]{1,}$/i',
        'message'  => 'Alphabet only',
        'required' => true
    ),
    'phone' => array(
        'rule'     => 'numeric',
        'message'  => 'numbers only please',
        'required' => true
    ),
    'email' => array(           
        'rule'    => 'email',
        'message' => 'Your email is not valid',
        'required' => true

    ),
    'quantity' => array(
        'rule'     => 'numeric',
        'message'  => 'numbers only please',
        'required' => true
    )
);

2 个答案:

答案 0 :(得分:1)

您是否在default.ctp中添加了样式表?如果从default.ctp布局中删除了默认的CakePHP样式表,则默认颜色将不再存在。

您需要在布局中再次包含CakePHP样式表(在这里您可以看到它在原始default.ctp中的样式:https://github.com/cakephp/cakephp/blob/master/app/View/Layouts/default.ctp#L33

或者在样式表中创建自己的CSS样式。您可以使用默认CakePHP样式表中的样式作为示例;

https://github.com/cakephp/cakephp/blob/master/app/webroot/css/cake.generic.css#L371

答案 1 :(得分:0)

您的代码没有任何问题。这就是CakePHP处理错误报告的方式。红色内容保留用于重大错误,例如缺少视图,缺少功能或无法连接到数据库。基本上会产生400的范围内的状态代码的东西。

我做了一些搜索更好地回答了你的问题,但我偶然发现了这个页面。 CakePHP 2.0 - How to make custom error pages?

关于CakePHP在你做错事时会产生什么状态代码的全部内容。 验证错误我认为甚至可以抛出OK(200),但不会向数据库写任何内容。发生了几次给我。