在Codeigniter中获取自定义错误消息数组

时间:2014-06-20 02:52:25

标签: php codeigniter

试图找出让我的自定义错误消息正常工作的最佳方法。 Isset似乎在codeigniter中不起作用。

由于某些原因,我的输入显示了数字'1'

控制器

<?php

class Step_3 extends MX_Controller { 

private $error = array();

public function index() {
  if(($this->input->server('REQUEST_METHOD') == 'POST') && $this->validate()) {
    $data['db_hostname']    = $this->input->post('db_hostname');
  }

  if ($this->error['db_hostname']) {
    $data['error_db_hostname'] = $this->error['db_hostname'];
  } else {
    $data['error_db_hostname'] = '';
  }

  if ($this->input->post('db_hostname')) {
    $data['db_hostname'] = $this->input->post('db_hostname');
  } else {
    $data['db_hostname'] = 'localhost';
  }
}

private function validate() {
  if (!$this->input->post('db_hostname')) {
    $this->error['db_hostname'] = 'Hostname required!';
  }
}

} // End Of

查看文件示例

<input type="text" name="db_hostname" value="<?php echo $db_hostname; ?>" id="input-db-hostname" class="form-control" size="50"/>
<?php if ($error_db_hostname) { ?>
<div class="text-danger"><?php echo $error_db_hostname; ?></div>
<?php } ?>

1 个答案:

答案 0 :(得分:0)

您的&#34;验证&#34;函数不会返回任何内容,因此您的第一个if语句永远不会成立。 此时输入将自动具有&#39; localhost&#39;的值。测试空字符串和剥离空格可能更好,以防万一:

if ("" == trim($this->input->post('db_hostname')))