【问题标题】:Codeigniter's is_unique doesn't work with multiple fieldsCodeigniter 的 is_unique 不适用于多个字段
【发布时间】:2012-07-04 12:16:19
【问题描述】:

我正在制作注册表单,我希望字段 nicke-mail 是唯一的。我在控制器中使用表单验证:

  $this->load->library('form_validation');
    $this->form_validation->set_rules('nick', '<b>Nazwa użytkownika</b>', 'required|is_unique[users.nick]');
    $this->form_validation->set_rules('email', '<b>Adres e-mail</b>', 'required|is_unique[users.mail]');
    $this->form_validation->set_rules('password', '<b>Hasło</b>', 'required');
    $this->form_validation->set_message('is_unique', '%s jest już w bazie.');

    if ($this->form_validation->run()) {
        $data['submit'] = $this->users_model->CreateUser($this->input->post()); //submits data
        $this->load->view('contribute/emptyPage', $data); //loads view
    } else {
        $data['title'] = 'Załóż konto';
        $this->layout->view('account/create',$data);
    }

当我只填写一个字段时它有效,eq。 nickmail。当我填写整个表格时,它可以毫无问题地处理。我能做什么?

编辑。

我发现只有一个或多个字段中只有数字时才会出现问题。

【问题讨论】:

  • 如果我在你那里我会做一个回调函数
  • 您使用的是什么版本的 CI?
  • @LeventeNagy:回调函数是最后的选择,我不喜欢写一些已经可用的东西。

标签: php codeigniter


【解决方案1】:

您需要创建自己的custom validation callback function

【讨论】:

  • @Robert 因为这是在 Codeigniter 的表单验证框架范围内完成他想要完成的事情的唯一方法。如果您有更好的解决方案,请随时提供,这就是 SO 的全部意义所在! :)
  • 取决于 OP 想要什么 - 当我第一次阅读问题时,我认为他希望用户名/电子邮件组合是唯一的,因此自定义回调函数建议。但如果这两个字段必须独立唯一,则无需使用一个。
  • 自定义回调函数似乎是另一种选择。我自己从未使用过 is_unique,但我在 CI 的用户指南中没有看到每个表单只能使用一个“is_unique”。
  • 我不明白为什么需要创建回调函数。这不是一个大问题,但它正在重新发明轮子。
  • 如果您阅读了我的最后一条评论 - 我是说您不需要使用自定义回调函数。我最初误读了您的问题-因为昵称和电子邮件的组合必须是唯一的-因为您需要自定义功能。但是,如果您想要一个唯一的昵称和一个唯一的电子邮件地址,那么您不需要使用自定义函数。
【解决方案2】:

我创建了一个is_unique function here

您可以通过两种方式使用它:

//is_unique[table_name.field_to_check.id_field_name.id_field_value] <-- unique 1 field only
//is_unique[table_name.field_to_check.id_field_name != 'id_field_value' and anotherIdName='theValue'] <-- custom where 

希望对你有用

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2012-11-21
    • 2015-05-06
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    相关资源
    最近更新 更多