【发布时间】:2022-01-14 17:49:10
【问题描述】:
您好,首先我应该告诉您,英语不是我的第一语言,所以请原谅任何误解。我在这里尝试的是使用“数据包”表中的外键访问“捐助者”表数据,我需要在控制器中获取该数据以使用。我认为PacketID 在我看来,在staff 控制器中,我需要获取特定的DonorMobile 和DonorName 才能向该捐赠者发送短信。我曾尝试创建多个模型函数,但没有奏效。可以通过这种方式完成还是有其他方式?蒂亚!
donors 和 packets 表的屏幕截图
员工控制器 - 我知道您无法在控制器中访问像 $donorData->DonorID 这样的数据
public function markAsUsed($packet)
{
$this->load->Model('Donor_Model');
$donorData = $this->Donor_Model->getDonors($packet);
$this->load->Model('Donor_Model');
$data = $this->Donor_Model->markAsUsed($donorData->DonorID);
$sid = 'twilio sid';
$token = 'twilio token';
$donorMobile = '+94' . $donorData->DonorMobile;
$twilioNumber = 'twilio number';
$client = new Twilio\Rest\Client($sid, $token);
$message = $client->messages->create(
$donorMobile, array(
'from' => $twilioNumber,
'body' => 'Thank you ' . $donorData->DonorName . ' for your blood donation. Your donation has just saved a life.'
)
);
if ($message->sid) {
$this->load->Model('Donor_Model');
$this->Donor_Model->changeStatus($data->isAvailable);
redirect('staff/viewpackets');
}
}
型号
function getDonors($packet) {
$data = $this->db->get_where('packets', array('PacketID' => $packet));
return $data->row();
}
function markAsUsed($donor)
{
$data = $this->db->get_where('donors', array('DonorID' => $donor));
return $data->row();
}
function changeStatus($packet)
{
$data = array(
'isAvailable' => False,
);
return $this->db->update('packets', $data, ['PacketID' => $packet]);
}
【问题讨论】:
-
请阅读joining tables,这里很好地解释了几种连接方式:blog.codinghorror.com/a-visual-explanation-of-sql-joins
标签: php mysql codeigniter codeigniter-3