0

如果我可以创建一个函数,那么如何从同一个控制器中的另一个函数调用它,我创建了一个函数,该函数从 to、cc、bcc、subject 等表单中获取数据。它们是表单和另一个表单的一部分它从我获取附件的函数中获取附件。我想调用一个获取其他详细信息的函数,以便我可以发送电子邮件。

函数电子邮件数据()

{
//这里它获取主题信息等详细信息

   function Sendmail($attachments)
      {
          //send your mail

       }

}

函数获取附件(){

//在这里获取附件

发送邮件($附件);

}

4

2 回答 2

0

您可以像这样定义私有控制器函数(私有函数名称必须以下划线开头):

private function _get_details()
{
  // some code
}

它将无法通过 url 访问,但您可以像这样调用它:

function send_mail()
{
   //do something
   $this->_get_details();
   // and we called the other method here!
}

您可以像这样重组代码:

public function emaildata()
{
   //here it fetches details like subject message
   $emaildata->subject = "..";
   //get attachments
   $attachments = $this->_getattachments();
   $this->_sendmail($emaildata,$attachments);
}

private function _getattachments() {
   //get attachments here
}

private function _sendmail($emaildata,$attachments)
{
   //send your mail
}
于 2013-10-06T11:17:15.740 回答
0

您可以从同一个控制器调用函数!作为它的同一类。

但是尝试使其成为非公共功能,这样就无法从网站访问它(例如:在方法名称的开头使用 _ {下划线})

参考这里:http ://ellislab.com/codeigniter/user-guide/general/controllers.html#private

于 2013-10-06T11:15:32.303 回答