Validation CakePHP:错误消息未显示验证字段

Validation CakePHP:错误消息未显示验证字段,validation,cakephp,Validation,Cakephp,我是CakePHP新手。我对这个观点有两个问题 文本字段名称和文本字段区域之间有换行符。我试图传递'div'=>false,但没有成功。如何删除换行符并在同一行上同时显示 我已将验证规则添加到此文本字段,但当我单击“保存”时,不会显示错误消息。除了在模型中添加验证之外,我还需要做些什么吗 这是我的视图input.ctp echo $this->Form->input('fileId', array( 'type'=>'text', 'style' =>

我是CakePHP新手。我对这个观点有两个问题

  • 文本字段名称和文本字段区域之间有换行符。我试图传递
    'div'=>false
    ,但没有成功。如何删除换行符并在同一行上同时显示

  • 我已将验证规则添加到此文本字段,但当我单击“保存”时,不会显示错误消息。除了在模型中添加
    验证
    之外,我还需要做些什么吗

这是我的视图
input.ctp

echo $this->Form->input('fileId', array(
    'type'=>'text', 
    'style' => 'width: 200px; height: 15px'
));
echo $this->Form->end('Save Post');
这是我的模型:

var $validate = array(
    'fileId' => 'notEmpty',
    'message' => 'Should not be empty'
    );
控制器:

if ($this->request->is('post')) {
    $data = $this->request->data;
    if ($data) {
        // saving the data
    }
}

调用validates()或save()时会出现验证错误。 完全设置您的操作。 如果您没有使用输出字段、标签和错误的FormHelper::input,则还需要使用
$this->Form->error('fileId')
手动输出错误

对于表单,请尝试以下内容: 将此添加到css中

label { float: left; 
        width: 150px; 
        display: block; 
        clear: none; 
        text-align: left; 
        vertical-align: middle; 
        padding-right: 0px;} 

.xg { 
display: block; 
float:left; 
} 

echo $this->Form->input('fileId', array('div'=>'xg','type'=>'text', 'style' => 'width: 200px; height: 15px'));
echo $this->Form->end('Save Post');

您可以通过以下方法自定义输出:

<tr>
    <td><label>Username</label></td>
    <td>
        <?php echo $this->Form->input('username',array('label'=>false,'div'=>false,'error'=>false)); ?>
    </td>
<td><?php echo $this->Form->error('username'); ?></td>
</tr>

用户名

此方法将在同一行中为您提供输出。

要验证您的数据,您应该具有以下内容:

public $validate = array(
    'fileId' => array(
        'rule' => 'notEmpty',
        'message' => 'Should not be empty'
    )
);
和您的
控制器

if ($this->request->is('post')) {
    if ($this->Model->save($this->request->data)) {
        // saved
    }
}
如果无法保存,错误将显示在相应字段附近。或者您可以使用
$this->Model->validationErrors
数组自定义错误


对于换行问题,请确保200px根据这些元素的位置自动换行。

如果未使用
save
,则需要使用
validates
手动验证数据。在这种情况下,您还需要设置数据。例如,在控制器中

   $this->ModelName->set($data);
   $this->Modelname->validates();

当我在文本字段保持为空的情况下单击“保存帖子”按钮时,不会显示任何错误消息。我认为添加“between'=>”
就是在标签和字段之间添加换行符。我想删除换行符并在同一行中显示它们。好的,我现在取消了换行,我已经编辑了我的答案,认为在这种模式下,在您可以配置所需填充后,您可以在同一行中添加标签和输入。。。对于我正在搜索的模型..我只使用了一个文本字段,因此我自己没有使用任何css文件。我已经编辑了模型的答案,没有css,您无法将元素定位到您的站点中,您必须将其实现到现有的css中您自己的css行保存数据时是否可以发布控制器?尝试遵守约定。(db)字段为小写字母。将样式移动到样式表中。发布一段有疑问的HTML。蛋糕的版本是什么?我已经按照你说的更新了我的模型。文件Id标签附近有一个红色星号符号,但如果文件为空,我单击save post按钮,该标签附近不会显示任何错误消息。仅供参考,我假设如果字段为空,则按下保存按钮时会显示错误消息。控制器方法很大。我已经展示了它的相关部分。我没有使用save。是否有其他方式显示错误?是的,您需要调用save,否则验证方法将不会运行。或者,您可以调用
validates()
,不需要表格来布局表单。