Search code examples
zend-frameworkrenderer

Zend : Error Occurs when create html file from zend phtml file for multiple employee


//controller function
function sendBulkMailAction(){
       $template = "estimated-festival-bill-single.phtml";
       foreach ($employeeArr as $profile_id => $employeeValue) {
    
            $someData = array(); //here include some salary data
            $model = new ViewModel($someData);
            $model->setTemplate($template);

             $htmlContent = "<!DOCTYPE html>\n\r<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\r<head>
                            <meta charset=\"utf-8\">
                        </head>
                        <body>"
            . $this->getServiceLocator()->get('viewrenderer')->render($model)
            . "</body>
                    </html>";

          //create html file

           //create pdf link from html by wkhtmlToPdf

          //send this link via email to employee

     }
 }

//estimated-festival-bill-single.phtml
//simple code 
<div> Employee Name</div>
<br>
<div><?php echo  _get_salary_html(); ?></div>
 <?php 
function _get_salary_html(){
   return "Salary Data";
}
?>

error show

Fatal error: Cannot redeclare _get_salary_html() (previously declared in G:\xampp\htdocs\ums\module\Hrm\view\hrm\salary-reports\estimated-salary-bill-single.phtml:9) in G:\xampp\htdocs\ums\module\Hrm\view\hrm\salary-reports\estimated-salary-bill-single.phtml on line 10

hints: when single employee its ok but for multiple employee show error


Solution

  • Because you are re-declaring function unknowingly. Add a condition around the function like below.

    if (!function_exists('_get_salary_html'))   {
      function _get_salary_html()  {
        ........
      }
    }