使用Codeigniter

时间:2016-10-26 10:52:52

标签: php mysql codeigniter

当管理员点击批准按钮时,它应该将批准的人员的user_id添加到批准表中的字段

这是按钮

 <?php echo anchor('admin/messages/approve/'.$message->id.'', 'Approve', 'class="btn btn-success"'); ?>

这是Controller

中的批准功能
public function approve($id) {

$data  = array(
  'first_approval'      =>  $this->session->userdata('user_id')
 );


    $this->Message_model->approve($id, $data);


        //isset Message
        $this->session->set_flashdata('success', 'Your approval was send');

        //Redirect
        redirect('admin/messages');

}

这是模型

中的批准方法
public function approve($data) {

   $this->db->select('*');
   $this->db->from('approval');
   $this->db->join('messages', 'messages.id = approval.sms_id');

   $this->db->where('id', 'sms_id');
   $this->db->set('first_approval', $data);
   $this->db->update('approval');
}

我的审批表中有sms_id,first_approval,second_approval和third_approval列,但现在我只是测试是否可以将session-&gt; user_id放在第一栏&#39;

2 个答案:

答案 0 :(得分:0)

在MODEL

中更改您的approve方法,如下所示
public function approve($id, $data) {
   $this->db->where('sms_id', $id);
   $this->db->update('approval',$data);
}

答案 1 :(得分:0)

请检查以下视图型号和控制器

查看

 <?php echo anchor('admin/messages/approve/'.$message->id.'', 'Approve', 'class="btn btn-success"'); ?>

控制器

class Messages extends CI_Controller {

  public function __construct() {
        parent::__construct();        
        $this->load->model('message_model');
  }
  function approve(){
      $id = $this->uri->segment(3); //Get message id
      $data  = array(
         'first_approval'      =>  $this->session->userdata('user_id')
      );

      $res = $this->Message_model->approve($id, $data);

      if($res >0){
        //Redirect
        redirect('admin/messages');
      }else{
       //some error accured 
      }
  }
}

模型

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Message_model extends CI_Model {

    public function __construct() {
        $this->load->database(); //If database not set in autoload
    }

   public function approve($id, $data) {
       $this->db->where('sms_id', $id);
       return $this->db->update('approval',$data); //If table update return no of rows update
   }

}