Codeigniter 3.1.7 - 严重性:通知消息:数组到字符串转换

时间:2018-01-25 06:05:54

标签: php codeigniter codeigniter-3

Helo,我是php和CI的新手。我只是关注ci教程here,我在这个part中遇到了问题。

这是我的模特

public $rules_admin = array(
      'name' => array(
        'field' => 'name',
        'rules' => 'trim|required'
      ),
      'email' => array(
        'field' => 'email',
        'rules' => 'trim|required|valid_email|callback__unique_email'
      ),
      'password' => array(
        'field' => 'password',
        'rules' => 'trim|matches[password_confirm]'
      ),
      'password_confirm' => array(
        'field' => 'password_confirm',
        'rules' => 'trim|matches[password]'
      )
    );  

这是我的控制器

function edit($id = NULL)
  {
    $id == NULL || $this->data['user'] = $this->user_m->get($id);

    $rules = $this->user_m->rules_admin;
    $id || $rules['password'] .= '|required'; // i have Noticed about this

    $this->form_validation->set_rules($rules);
    if ($this->form_validation->run() == TRUE) {
    }

    $this->data['subview'] = 'components/admin_edit';
    $this->load->view('components/index', $this->data);
  }

  public function _unique_email($str)
  {
    $id = $this->uri->segment(4);
    $this->db->where('email', $this->input->post('email'));
    !$id || $this->db->where('id !=', $id);
    $user = $this->user_m->get();

    if (count($user)) {
      $this->form_validation->set_message('_unique_email', '%s should be unique');
      return FALSE;
    }

    return TRUE;
  }

我已经加载了模型,助手,库。

我还发现有两条关于视频的评论提供解决方案,我尝试但仍然无法正常工作。

我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:0)

$rules定义为方法

之上的数组
$rules = array();
$rules = $this->user_m->rules_admin;

 $rules[] = $this->user_m->rules_admin;

不知道您尝试在此处归档的内容$id || $rules['password'] .= '';

如果您需要将其推送到阵列,可以使用$rules['password'] = '|required';(用于密码)

答案 1 :(得分:0)

变化

  

$ id || $ rules ['password']。='| required';

  

$ id || $ rules ['password'] ['rules']。='| required';

$rules['password']是数组。使用字符串类型.运算符,返回Notice Message: Array to string conversion