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;
}
我已经加载了模型,助手,库。
我还发现有两条关于视频的评论提供解决方案,我尝试但仍然无法正常工作。
我该怎么办?谢谢。
答案 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