我正在从事 CI 项目,我想在其中发送电子邮件以特定 附有一份 PDF 的用户。我正在尝试发送我的动态视图 我用m_pdf生成的文件,但它对我不起作用。 它没有附加任何东西。向我显示错误">ci_loader不能 用作字符串'。
这是我的控制器功能:
public function emp_pdf()
{
$this->load->model('my_model');
ob_end_clean();
$this->load->library('m_pdf');
$id=$this->uri->segment(3);
$dataObj=array('id'=>$id);
$data['data_pdf']=$this->my_model->method($dataObj);
$this->load->view('layouts/emp_pdf',$data);
$this->load->library('email', $config);
$this->email->set_newline("rn");
$this->email->from('abc@gmail.com');
$this->email->to();
$this->email->subject();
$this->email->message();
$this->email->attach($this->load->view('layouts/emp_pdf',$data));
}
正如您在上面看到的,我正在从我的模型中获取一个数组中带有 id 的数据$dataObj=array('id'=>$id);
$data['data_pdf']=$this->my_model->method($dataObj);
并将此数组传递给我的视图文件$this->load->view('layouts/emp_pdf',$data);
.
我正在使用相同的功能查看文件或下载pdf,并且它运行良好,但是如果我附加邮件则相同的文件无法正常工作。$this->email->attach($this->load->view('layouts/emp_pdf',$data));
我在网上搜索了很多东西,但没有得到解决方案。 如何在代码点火器中将我的视图文件作为附件加载.提前感谢。
注释掉第一个$this->load->view('layouts/emp_pdf',$data);
并使用缓冲功能:https://www.codeigniter.com/userguide3/libraries/email.html#CI_Email::attach
如果需要使用缓冲区字符串而不是实际的物理文件 您可以将第一个参数用作缓冲区,第三个参数用作文件 name 和第四个参数作为 MIME 类型
$attach_str = $this->load->view('layouts/emp_pdf',$data,true); // true returns
$this->email->attach($attach_str, 'attachement', 'somename.pdf', 'application/pdf');
此外,您的电子邮件缺少to
,subject
和message
,但我认为您尚未添加。