获取 codeigniter 的活动日志

Posted

技术标签:

【中文标题】获取 codeigniter 的活动日志【英文标题】:Get activity log for codeigniter 【发布时间】:2020-09-02 19:48:57 【问题描述】:

我尝试根据用户输入的更改在 Codeigniter 中创建活动日志,并生成这样的输出

Output : User1 Changes: Address (Street A) becomes (street B), date of birth (March 10, 2000) becomes (March 20, 2000), Phone number (0000) becomes (11111).

当我提交表单时,我可以找出哪些数据发生了变化,例如地址,从地址 A 到地址 B。我想在数据库中存储日志。 我可能已经能够将数据输入数据库,但我仍然不知道如何获取输出数据,我尝试使用 jQuery 但没有成功。在codeigniter中是否有这样做的功能?

这是我的输入表单。

 <?php echo form_open(base_url('update_profile'), 'class="form-horizontal"');  ?> 
  <label for="address">Address:</label><br>
  <input type="text" id="address" name="address" value="Street B"><br>
  <input type="hidden" id="old_address" name="old_address" value="Street A"><br>

  <label for="birth">Date Birth:</label><br>
  <input type="text" id="birth" name="birth" value="March 20, 2000"> 
  <input type="hidden" id="old_birth" name="old_birth" value="March 10, 2000"> 

  <label for="phone">Phone number:</label><br>
  <input type="text" id="phone" name="phone"  value="11111">
  <input type="hidden" id="old_phone" name="old_phone" value="0000">

  <label for="email">Email:</label><br>
  <input type="email" id="email" name="email">
<?php echo form_close(); ?>

我的控制器

public function update_profile()

        $is = $this->session->userdata('id');
        $this->form_validation->set_rules('phone', 'Phone', 'trim');

        if ($this->form_validation->run() == FALSE) 
                $errors = validation_errors();
                echo $errors;
        
        else
            $data = array(
                 'address' => $this->input->post('address'),
                 'birth' => $this->input->post('birth'),
                 'phone' => $this->input->post('phone'),
                 'email' => $this->input->post('email'),

            );

            $data   = $this->security->xss_clean($data);
            $result = $this->data_user->update_model_profile($data, $id);
            $result = true;

            if ($result) 
                echo $result;
            
          
   

这是我的模型。

    public function update_model_profile($data, $id)
        $this->db->where('user_id', $id);
        $this->db->update('data_profile', $data);
        return true;
       

【问题讨论】:

要从数据库中获取数据,您只需在模型中创建一个函数,如更新函数,然后您可以在控制器中获取它或者您想要其他东西?? 如何获取输出数据是什么意思?请解释您的问题 我的意思是,当我点击提交时,我可以找出哪些数据发生了变化,例如地址,从地址 A 到地址 B。就像这个 ***.com/questions/29118178/… 一样,但对于所有输入。 @sauhardnc 谢谢,但我不会从数据库中获取数据。我想获取日志数据,我可以找出哪些数据已更改。 @NadeemIjaz 【参考方案1】:

您可以将从数据库中获取的数据的副本保存在一个数组中,然后将其与表单提交的数据进行比较,并可以得到用户更改了哪些值。

【讨论】:

你能给我举个例子吗?我不知道该怎么做。谢谢,

以上是关于获取 codeigniter 的活动日志的主要内容,如果未能解决你的问题,请参考以下文章

使用 codeigniter 活动记录获取单个字段输出的值

如何在codeigniter活动记录中获取特定数组

codeigniter 活动记录获取查询和不带 LIMIT 子句的查询

codeigniter,从不直接调用视图,有人可以解释一下

Codeigniter 活动记录从 mysql 获取记录,其中 id 等于数组中的记录

如何从 codeigniter 活动记录中的 DATETIME 字段中获取 d-m-Y 格式的日期?