【问题标题】:Yii mail() expects parameter 1 to be string, array givenYii mail() 期望参数 1 是字符串,给定数组
【发布时间】:2011-04-29 05:03:21
【问题描述】:

如何将数组转换为字符串?

$to=Person::model()->findAll($criteria);

我想向多个电子邮件地址发送一封电子邮件。

mail($to,$model->subject,$model->body,$headers);

【问题讨论】:

    标签: php yii


    【解决方案1】:

    如果$to 仅包含电子邮件地址,您可以将其转换为字符串:$to = implode(', ', $to);

    【讨论】:

    • 我试过 $to = implode(', ', $to);我得到 PHP 错误 类 Person 的对象无法转换为字符串。
    • 这意味着 $to 不是一个电子邮件地址(字符串)数组,而是一个对象数组(Person 类型)。这些人可能有获取电子邮件地址的方法,您需要先这样做:$to=Person::model()->findAll($criteria); $emails = array(); foreach($to as $p) { $emails[] = $p->getEmailAddress(); // or whatever it's called... } mail(implode(',', $emails), $model->body, $headers);
    • 请解释一下$p->getEmailAddress()。
    • 在上面的代码中,sn -p $to 是一个 Persons 数组(Person 类的对象)。在 foreach 循环中,数组中的每个项目依次分配给 $p。所以 $p 总是指向 Person 类的一个对象。我只是假设这样的对象具有获取其电子邮件地址的方法。该方法可以称为getEmail()getEmailAddress() 或其他名称。您应该检查 Person 的实现以找出确切的答案。如果我假设该方法称为getEmailAddress,那么$p->getEmailAddress() 将获取该人的电子邮件地址。您可能需要$p->getEmail() 或其他内容。
    • 好的...我正在使用CDbCriteria.$criteria=new CDbCriteria;$criteria->condition="status=1";$criteria->select="email";$to=Person::model()->findAll($criteria); 检索电子邮件地址我仍然不清楚将对象数组(Person 类型)转换为字符串。
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 2021-01-13
    • 2015-07-12
    • 2016-04-30
    • 2014-12-09
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多