3

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

  • 文本字段名称和文本字段区域之间有换行符。我试图通过'div' => false,但没有奏效。如何删除换行符并在同一行显示?

  • 我已在此文本字段中添加了验证规则,但是当我单击保存时,错误消息未显示。validates除了添加我的模型之外,我还需要做其他事情吗?

这是我的看法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
    }
}
4

4 回答 4

2

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

   $this->ModelName->set($data);
   $this->Modelname->validates();
于 2012-10-16T08:09:14.350 回答
2

为了验证你的数据,你应该有这样的东西:

public $validate = array(
    'fileId' => array(
        'rule' => 'notEmpty',
        'message' => 'Should not be empty'
    )
);

你的Controller

if ($this->request->is('post')) {
    if ($this->Model->save($this->request->data)) {
        // saved
    }
}

如果无法保存,错误将显示在相应字段附近。或者您可以使用$this->Model->validationErrors数组自定义错误。

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

于 2012-10-11T11:10:22.143 回答
1

调用 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');
于 2012-10-11T10:25:25.270 回答
0

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

<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>

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

于 2012-10-11T11:05:06.083 回答