我收到此错误:
遇到PHP错误 严重性:通知
消息:未初始化的字符串偏移量:0
文件名:controllers / basecontroller.php
行号:616和行号:617
这是我的代码:
//Controller File
function _send_email($email_template, $receiver=array(), $data=array(), $sender=array()){
$this->load->model('ad_model');
$tmpl = $this->ad_model->getAdByCode($email_template);
$title = $tmpl['desc']; // Line 616
$html = $tmpl['html']; // Line 617
$html = str_replace("[NAME]", $receiver['name'] ,$html);
//$html = str_replace("[PWD]", $pwd ,$html);
$html = str_replace("[EMAIL]", $receiver['email'] ,$html);
foreach($data as $code=>$d){
$html = str_replace("[".strtoupper($code)."]", $d ,$html);
}
...
//Model File
function getAdByCode($code){
$this->db->select('html,desc');
$rec = $this->db->get_where('ad', array('code'=>$code), 1,0);
//echo $code;
//echo print_r($rec,1);
$rec = $rec->result_array();
if(isset($rec[0])){
$rec = $rec[0];
} else {
$rec = '';
}
return $rec;
}
}
有人会帮忙吗?
答案 0 :(得分:0)
似乎在$tmpl
数组中找不到索引。尝试检查设置或不设置的值以避免通知
$title = (isset($tmpl['desc']) ? $tmpl['desc'] : ''); // Line 616
$html = (isset($tmpl['html']) ? $tmpl['html'] : '');
答案 1 :(得分:0)
您的模板数组$tmpl
不包含html
作为密钥。
如果您可以在$this->ad_model->getAdByCode($email_template);
中控制它,则可以更改为使用$tmpl['html']
写信时使用。
但是从数组中访问关键元素的建议方法是检查它的存在,例如:
$title = isset($tmpl['desc']) ? $tmpl['desc'] : '';
$html = isset($tmpl['html']) ? $tmpl['html'] : '';