php - 无法访问 codeigniter 中的空属性

标签 php mysql codeigniter

我无法从在数据库中插入空值的表单中获取发布值

用户 Controller

public function edit($id = NULL) {
    if ($id) {
        $this->data ['user'] = $this->user_login_model->get($id);
        count ( $this->data ['user'] ) or $this->data ['errors'] [] = "user could not be found";
    } else {
        $this->data ['user'] = $this->user_login_model->new_user ();
    }

    $rules = $this->user_login_model->rules_admin;
    $id || $rules ['password'] .= '|required';
    $this->form_validation->set_rules ( $rules );
    if ($this->form_validation->run () == TRUE) {

          $data=$this->user_login_model->array_from_post(array('name','email','password'));
        $this->data['password']=$this->user_login_model->$data['password'];
        $this->user_login_model->save($data,$id);
        redirect('admin/users');

        // do stuff

    }

如果是新用户,那么它将发布新数据

public function new_user() {
    $user=new stdClass();
    $user->name ='';
    $user->email ='';
    $user->password ='';
    return $user;

    var_dump($user);

循环遍历数组并返回它的模型方法

public function array_from_post($fields) {
    $data = array ();
    foreach ( $fields as $field ) {
        $data['feild']=$this->input->post($field);
        return $data;
    echo var_dump($data);
    }
}

这是 var_dump

object(stdClass)[22]
public 'id' => string '18' (length=2)
public 'email' => string '' (length=0)
public 'password' => string '' (length=0)
public 'name' => string '12' (length=2)

这是空的,你能告诉我有什么问题吗?

最佳答案

试试这个
你的 Controller 编辑功能

  public function edit($id = NULL) {
    if ($id)
    {
        $this->data ['user'] = $this->user_login_model->get($id);
        count ( $this->data ['user'] ) or $this->data ['errors'] [] = "user could not be found";
    }
    else
    {
        $this->data ['user'] = $this->user_login_model->new_user ();
    }

    $rules = $this->user_login_model->rules_admin;
    $id || $rules ['password'] .= '|required';
    $this->form_validation->set_rules ( $rules );
    if ($this->form_validation->run () == TRUE)
    {

        $this->data=$this->user_login_model->array_from_post(array('name','email','password'));
        $this->data=$this->array_from_post(array('name','email','password'));

        // I removed this line not sure what you did here
        $this->user_login_model->save($this->data,$id);
        // do stuff
        redirect('admin/users');

    }
}

你的模型 array_from_post 函数

public function array_from_post($fields)
{
    $data = array ();
    foreach ( $fields as $field )
    {
        $data[$field]=$this->input->post($field);

    }
    return $data;

}

你的新用户函数

 public function new_user() {
    $user=new stdClass();
    $user->name ='';
    $user->email ='';
    $user->password ='';
    return $user;
}

希望对你有帮助

关于php - 无法访问 codeigniter 中的空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974750/

相关文章:

php - Dreamweaver PHP 登录注销有多安全?

php - php web应用程序的指纹认证

php - 如何将图像的文件路径转换为实际图像?

php - 在 MySQL 表中使用字符串作为 ID 可以吗?

php - 使用 Ajax 和 Codeigniter 的评论系统

javascript - 在ajax(php)中以数组形式访问id

php - 通过 PHP (Laravel)、Android 和 iOS 进行加密和解密的跨平台数据传输

mysql 触发代码从 TOAD 部署,但不是从 phpmyadmin 或 mysql 控制台部署

php - 数据库错误: MySQL Error Number: 1064

php - CodeIgniter 事件记录与 MySQL 查询之间的差异