我正在尝试为我正在编写的网络应用程序设置电子邮件“系统”。如果您在用户表中的角色是
3
并且您的帐户状态是
'活性'
然后当新用户注册或发送登录请求时,所有管理员都会收到电子邮件。到目前为止,我只是对电子邮件进行硬编码,但在营销应用程序时,公司不希望必须编写代码来更改电子邮件。所以我试图“动态地”做到这一点
我的模型在很大程度上要感谢 Thomas!:
{
$sql = "SELECT * from users WHERE status = 'Activated' and role = 3";
$admin_email = $this -> db -> conn_id -> prepare($sql);
$admin_email -> execute();
$emails = array();
if ($admin_email)
{
if ($admin_email -> rowCount() > 0)
{
foreach ($admin_email -> fetchall() as $row)
{
$emails[] = $this -> encrypt -> decode($row['email']);
}
return $emails;
}
}
}
和控制器:
{
$this -> load -> model('login_model');
$this -> load -> library('email');
$this -> load -> library('encrypt');
$emails = $this -> login_model -> admin_email();
$first = $this -> input -> post('fname');
$last = $this -> input -> post('lname');
$email = $this -> input -> post('email');
$this -> email -> from($email);
$this -> email -> to($emails);
$this -> email -> reply_to($email);
$this -> email -> subject('' . $first . ' ' . $last . ' Account Request');
$this -> email -> message('{unwrap}Hello this is ' . $first . ' ' . $last . ', I am requesting to be added to the staff log-in.{/unwrap}');
if (!$this -> email -> send())
{
$this -> session -> set_flashdata('email', 'Email Was Not Sent!');
$this -> request_account();
} else
{
$this -> session -> set_flashdata('login', 'Request Sent!');
redirect('login_controller/index', 'location');
}
}
只是从我的观察中更深入地研究这一点:
- 返回的第一行工作得很好,但出于测试目的,我有两个管理员帐户,就像我刚才说的,第一行只收到电子邮件。并说如果我删除第一行(第一个管理员),那么第二行会得到它。所以我觉得我的 foreach 失败了,但我不知道为什么甚至如何纠正我的错误。
如果有人能告诉我我在这里做错了什么,那就太好了,