Codeigniter中的待处理请求/接受系统

时间:2019-01-04 08:09:05

标签: php codeigniter request

我正在尝试创建医院/用户系统,如果有血液样本,用户可以请求特定的医院。 因此逻辑是:我将在“ request”表中存储用户,血液和医院的三个ID,稍后我将使用连接查询从其他表中获取名称。 (请告诉我是否有其他可能的方式)

这是我的查看页面(它从“血液”表中获取数据):

    <table>

     <?php if(count($blood_all>0))
     { $i=0;
     foreach ($blood_all as $user) {
     $i++;
     ?>
     <tr>
     <td><?php echo $i ?></td>
     <td><?php echo $user->btype ?></td>
     <td><?php echo $user->detail?></td>
     <td><?php echo $user->hospital_id?></td>
     <td>
              <?= anchor("Property/blood_req/{$user->id}",'Request', ['class'=>'btn btn-primary']); ?>
     </td>

     </tr>
     <?php }
     }?>
     </table>

因此,当用户按下请求时,它将发送血表ID(如果我是对的话)

如果用户未登录,则他/她将必须登录,然后他/她可以发送请求: 请注意:我的血液表中已经有hospital_id,因此我只需要存储user_id,这样管理员就可以知道哪个用户正在发送请求。

这是我的控制人:

   public function blood_req($blood_id)
      {
        if(!$this->session->userdata('user_id'))
         {
           return redirect('Login/loginview_load');
          }
         else {
           $this->load->model('Partner_model');
           $data['blood']=$this->Partner_model->find_blood($blood_id);
           $user =$this->session->userdata('user_id');
          $user_data = array(
            'blood_id' =>$this->input->post($data['id']) ,
            'hospital_id' =>$this->input->post($data['hospital_id']) ,
            'user_id' =>$user
           );
            if($this->Partner_model->req_send($user_data))
          {
            $this->session->set_flashdata('login','Request sent Successfully');
            return redirect('Property/available');
          }
          else {
            echo "fail";
          }


         }
      }

这是我的模型:

   public function find_blood($blood_id)
  {
    $q=$this->db->select('*')
    ->where('id',$blood_id)
    ->get('blood');
    return $q->row();
  }
 public function req_send($data)
  {
   return $this->db->insert('request',$data);
  }

当我按下请求时,它的打印“失败”,这意味着没有在请求表中插入数据。

1 个答案:

答案 0 :(得分:1)

您正在直接访问值。使用以下代码访问您的数组值。当您在注释中提供数据时,它显示您的blood数组为stdClass Object,因此您必须使用->来访问它。

$user_data = array(
    'blood_id' =>$data['blood']->id,
    'hospital_id' =>$data['blood']->hospital_id ,
    'user_id' =>$user
);