Octobercms成功邮件发送返回空警报

时间:2015-02-14 18:29:59

标签: laravel octobercms

我是Laravel和OctoberCMS的新手。

我已成功设置了一个信息申请表,在提交时通过Mailgun向我发送电子邮件。提交由AJAX处理程序处理。

我遇到的问题是该进程在表单页面上打开一个带有空数组的警告框。

以下是页面:http://imageweaversmarketing.com/ 点击' CONTACT'在右上角移动到表单。

以下是表格的部分:

<div class="row">
<div class="col-lg-12">
    <form data-request="onInfoRequest" name="sentMessage" id="contactForm" novalidate="">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="Your Name *" id="name" required="" data-validation-required-message="Please enter your name.">
                    <p class="help-block text-danger"></p>
                </div>
                <div class="form-group">
                    <input type="email" class="form-control" placeholder="Your Email *" id="email" required="" data-validation-required-message="Please enter your email address.">
                    <p class="help-block text-danger"></p>
                </div>
                <div class="form-group">
                    <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required="" data-validation-required-message="Please enter your phone number.">
                    <p class="help-block text-danger"></p>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <textarea class="form-control" placeholder="Your Message *" id="message" required="" data-validation-required-message="Please enter a message."></textarea>
                    <p class="help-block text-danger"></p>
                </div>
            </div>
            <div class="clearfix"></div>
            <div class="col-lg-12 text-center">
                <div id="success"></div>
                <button type="submit" class="btn btn-xl">
                    Send Message
                </button>

            </div>
        </div>
    </form>
</div>

这是PHP AJAX:

use Illuminate\Support\Facades\Mail;
   public function onInfoRequest() {
   $data = ['name' => 'test from function'];
   Mail::send('mail.inforequest', $data, function ($message) {
   $message->to('fake@hidden.com', 'Roger Creasy');
   });
}

我感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我发现你还没有使用数据请求成功处理程序。邮件成功时显示输出所必需的。这是我的工作方式

function onSend()
{
    // Collect input
    $name = post('name');
    $email = post('email');

    // Form Validation
    $validator = Validator::make(
        [
            'name' => $name,
            'email' => $email
        ],
        [
            'name' => 'required',
            'email' => 'required|email'
        ]
    );

    if ($validator->fails())
    {
        $messages = $validator->messages();
        throw new ApplicationException($messages->first());
    }

    // All is well -- Submit form
    $to = System\Models\MailSettings::get('sender_email');
    $params = compact('name','email');
    Mail::sendTo($to, 'temp.website::mail.newrequest', $params);
    return true;
}

在表格方面,我使用了

<form class="form-horizontal" data-request="onSend" data-request-success="alert('We have recieved your email.. we\'ll get back to you shortly')">

        <div class="form-group">
          <label class="col-md-4 control-label" for="name">Name</label>  
          <div class="col-md-5">
          <input id="name" name="name" type="text" placeholder="Name" class="form-control input-md" required="">
          </div>
        </div>

        <div class="form-group">
          <label class="col-md-4 control-label" for="email">Email</label>  
          <div class="col-md-5">
          <input id="email" name="email" type="text" placeholder="Email ID" class="form-control input-md" required="">
          </div>
        </div>
</form>

所以你基本上只需要添加数据请求成功就可以了。享受!

答案 1 :(得分:0)

我必须完成这件事。所以,我在10月份放弃了解决方案。 我发布了我所做的解决方法,以防其他人有用。

我所做的是创建路由资源,并将其指向控制器以处理表单。基本上我去了La​​ravel基础结构并通过其MVC处理表单。