我正在尝试创建医院/用户系统,如果有血液样本,用户可以请求特定的医院。 因此逻辑是:我将在“ 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);
}
当我按下请求时,它的打印“失败”,这意味着没有在请求表中插入数据。
答案 0 :(得分:1)
您正在直接访问值。使用以下代码访问您的数组值。当您在注释中提供数据时,它显示您的blood
数组为stdClass Object
,因此您必须使用->
来访问它。
$user_data = array(
'blood_id' =>$data['blood']->id,
'hospital_id' =>$data['blood']->hospital_id ,
'user_id' =>$user
);