在yii中如何将参数发送到方法

时间:2012-11-28 11:15:04

标签: parameters yii action

在yii中,我使用邮件程序扩展创建actionEmail方法。它将接受四个参数:FromEmail,ToEmail,Subject和Message。为了检查输出,我发送参数的硬编码值。

public function actionCreate($FromEmail='abc@gmail.com',$ToEmail='xyz@gmail.com',$Subject='Project',$Message='Hiee')
{ 

    //using mailer extension
    $mailer = Yii::createComponent('application.extensions.mailer.EMailer');

    $mailer->IsSMTP();
    $mailer->IsHTML(true);
    $mailer->SMTPAuth = true;
    $mailer->SMTPSecure = "ssl";
    $mailer->Host = "smtp.gmail.com";
    $mailer->Port = 465;
    $mailer->CharSet = 'UTF-8';
    //$mailer->Username = "abc@shailani.com";
    $mailer->Password = "abc";
    $mailer->From = $FromEmail;
    $mailer->FromName = "Balaee.com";
    //$mailer->AddAddress('shilpakirad@gmail.com');
    $mailer->AddAddress($ToEmail);
    $mailer->Subject = $Subject;
    $mailer->IsHTML(true);
    //  $html = $this->renderPartial('myview',array('content'=>'Hello World'),true);
    $mailer->Body=$Message;

    if($mailer->Send()) {

        echo "Please check mail";
    }
    else {
        echo "Fail to send your message!";
    }
}

我在用户控制器中创建了这个方法。但它没有执行。请帮帮我

1 个答案:

答案 0 :(得分:2)

如果为动作功能指定参数,则这些参数定义必须通过GET或POST指定的参数。通常,除非指定了所有参数,否则无法将任何内容路由到此函数。在您的情况下可以,因为您正在为它们分配默认值。您应该能够使用正常的url格式调用该函数(例如index.php /?r = controller / email)。可以使用相同的URL指定自定义值: 的index.php / R =控制器/电子邮件&安培;主题=测试+电子邮件

也许从检查错误日志开始,看看是否有任何输出。 如果没有,我会评论整个功能内容,只是做一个回声或什么。这样你至少可以确保调用该函数。然后你可以重新添加代码,也许是分片,看看是否一切都在运行。