OctoberCMS邮政表格

T2T*_*T2T 8 php ajax sendmail laravel octobercms

我的表格:

<form id="main-contact-form" name="contact-form" ata-request="onSend" data-request-success="alert('Message Sent')">
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到一个表格发布; 我在哪里放这个文件?我编辑哪个文件使其将表单数据字段发送到我的电子邮件?我已经设置了后端邮件设置:

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


    // Submit form
    $to = System\Models\MailSettings::get('sender_email');
    $params = compact('name','email');
    Mail::sendTo($to, 'temp.website::mail.newrequest', $params);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

小智 7

请参阅文档:插件组件.

你可以创建一个组件(SomeForm.php)

<?php namespace My\Plugin\Components;

use Cms\Classes\ComponentBase;

class SomeForm extends ComponentBase
{
    public function componentDetails()
    {
        return [
            'name'        => 'Form',
            'description' => 'Some form'
        ];
    }

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

        // Submit form
        $to = System\Models\MailSettings::get('sender_email');
        $params = compact('name','email');
        Mail::sendTo($to, 'temp.website::mail.newrequest', $params);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后为它创建一个视图(例如default.htm)

<form id="main-contact-form" name="contact-form" data-request="{{ __SELF__ }}::onSend" data-request-success="alert('Message Sent')">
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

页面/布局中的用法:

[someForm]
==
{% component "someForm" %}
Run Code Online (Sandbox Code Playgroud)