Ошибки codeigniter form_validation на flashdata не отображаются

0

Мой пользователь/добавить форму

<?php echo $this->session->flashdata('message'); ?>
<?php echo form_open('user/save', array('role' => 'form')); ?>
  <div class="form-group">
    <label for="username" class="control-label">Username</label>
    <input type="text" class="form-control" name="username" value="">
  </div>
  <div class="form-group">
    <label for="email" class="control-label">Email</label>
    <input type="email" class="form-control" name="email" value="">
  </div>
  <div class="form-group">
    <label for="password" class="control-label">Password</label>
    <input type="password" class="form-control" name="password" value="">
  </div>
  <div class="form-group">
    <label for="password_confirm" class="control-label">Confirm Password</label>
    <input type="password" class="form-control" name="password_confirm" value="">
  </div>
  <br>
  <div class="form-group">
    <p>
      <?php echo btn_submit('Save'); ?>
      <?php echo link_to_previous_page('user', ' Back'); ?>
    </p>
  </div>
<?php echo form_close(); ?>

Моя функция сохранения на пользовательском контроллере

public function save()
{
  $rules = $this->user->rules;
  $this->form_validation->set_rules($rules);

  if ($this->form_validation->run() == TRUE) {
    $data = array(
      'username'    => $this->input->post('username'),
      'email'     => $this->input->post('email'),
      'password'    => md5($this->input->post('password')),
      'group_id'    => 1,
      'status'    => 1,
      'created'     => date('Y-m-d H:i:s'),
      'created_by'    => date('Y-m-d H:i:s'),
      'updated'     => date('Y-m-d H:i:s'),
      'updated_by'  => $this->session->userdata['username']
    );

    $this->user->save($data);

    $this->session->set_flashdata('message', msg_success('Insert data success'));
    redirect('user');
  }

  $this->session->set_flashdata('message', validation_errors());
  redirect('user/add');
}

Я установил свои правила проверки на моем user_model, который я установил псевдоним "пользователь", ниже приведены правила:

public $rules = array(
  'username' => array(
    'field' => 'username',
    'label' => 'Username',
    'rules' => 'trim|callback__unique_username|required'
  ),
  'email' => array(
    'field' => 'email',
    'label' => 'Email',
    'rules' => 'trim|valid_email|callback__unique_email|xss_clean|required'
  ),
  'password' => array(
    'field' => 'password',
    'label' => 'Password',
    'rules' => 'trim|matches[password_confirm]|required'
  ),
  'password_confirm' => array(
    'field' => 'password_confirm',
    'label' => 'Confirm Password',
    'rules' => 'trim|matches[password]|required'
  )
);

Я сделал то же самое в своей другой форме, но это работает, что я пропустил? Спасибо

Теги:
codeigniter
validation

2 ответа

0

Вы уверены, что загружаете класс сеанса?

$this->load->library('session');
  • 0
    конечно, потому что он работает отлично, в других модулях
0

попробуй вот так

Мой пользователь/добавить форму

<?php echo $this->session->flashdata('message'); ?>
<?php echo form_open('user/save', array('role' => 'form')); ?>
  <div class="form-group">
    <label for="username" class="control-label">Username</label>
    <input type="text" class="form-control" name="username" value="">
  </div>
  <?php echo form_error('username'); ?>
  <div class="form-group">
    <label for="email" class="control-label">Email</label>
    <input type="email" class="form-control" name="email" value="">
  </div>
  <?php echo form_error('email'); ?>
  <div class="form-group">
    <label for="password" class="control-label">Password</label>
    <input type="password" class="form-control" name="password" value="">
  </div>
  <?php echo form_error('password'); ?>
  <div class="form-group">
    <label for="password_confirm" class="control-label">Confirm Password</label>
    <input type="password" class="form-control" name="password_confirm" value="">
  </div>
  <?php echo form_error('password_confirm'); ?>
  <br>
  <div class="form-group">
    <p>
      <?php echo btn_submit('Save'); ?>
      <?php echo link_to_previous_page('user', ' Back'); ?>
    </p>
  </div>
<?php echo form_close(); ?>

Моя функция сохранения на пользовательском контроллере

<?php 
public function save()
{
  $rules = $this->user->rules;
  $this->form_validation->set_rules($rules);

  if ($this->form_validation->run() == TRUE) {
    $data = array(
      'username'    => $this->input->post('username'),
      'email'     => $this->input->post('email'),
      'password'    => md5($this->input->post('password')),
      'group_id'    => 1,
      'status'    => 1,
      'created'     => date('Y-m-d H:i:s'),
      'created_by'    => date('Y-m-d H:i:s'),
      'updated'     => date('Y-m-d H:i:s'),
      'updated_by'  => $this->session->userdata['username']
    );

    $this->user->save($data);

    $this->session->set_flashdata('message', msg_success('Insert data success'));
    redirect('user');
  }
else
{
  $this->load->view('load_your_add_from_view_here');
}
}
  • 0
    извините, сэр, но это не работает, я использую flashdata, так что я могу использовать его с перенаправлением, в моем другом модуле, он работает отлично, но в этом он не работает. Не знаю почему? :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню