Class 在 ajax 请求后未找到 - 10 月 cms

Class not found after ajax request - October cms

对于我在 october cms 中的应用程序,我希望能够通过单击按钮发送邮件。我使用 ajax 请求调用 php 文件,但是当单击按钮时,无论我使用哪个 class,我都会收到错误 'class not found',这无关紧要。我已经将该文件添加到 .htaccess 以便能够在单击按钮时 运行 它。我在文件顶部包含了所有 classes。此外,当我将它变成一个 artisan 命令并使用 php artisan now:send:mail 将它变成 运行 时,它可以正常工作。我已经尝试 运行 composer dump autoloadcomposer dump autoload -o。代码在下面,知道我可以做些什么来完成这项工作,或者可以通过其他什么方式完成吗?

提前致谢!

theme.js的一部分:

$.ajax({
    url : '/plugins/test/notifications/ondemand/OnDemand.php'
}).done(function(data) {
    console.log(data);
});

OnDemand.php:

<?php

namespace Test\Notifications\OnDemand;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use Test\Poles\Components\Metrics;
use October\Rain\Argon\Argon;

class OnDemand
{
    public function send()
    {
        $date = Argon::now(config('app.timezone'))->format('Y-m-d');
        // get some data
        $array = ['date' => $date, 'score' => $score, 'CO2' => $CO2, 'scorecar' => $scorecar, 'scorebike' => $scorebike];
        $email = "test@test.nl";
        Mail::sendTo($email, 'daily.mail', $array);
    }
}

$mail = new OnDemand;
$mail->send();

我不确定您是想将此作为您开发的自定义 October 插件的一部分还是仅在常规的 October 模板中执行。但是,使用 ajax 按钮发送电子邮件的最简单方法如下:

1) 在设置中的 October 后端创建一个新的邮件模板 |邮件模板

2) 在 10 月的 "CMS" 部分,创建一个新的空白页面

3) 对于新页面的 "Markup" 部分,按钮 HTML:

<button data-request="onPressButton">Send</button>

4) 对于新页面的"Code"部分,如下PHP:

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use Test\Poles\Components\Metrics;
use October\Rain\Argon\Argon;


function onPressButton()
{
    $date = Argon::now(config('app.timezone'))->format('Y-m-d');
    // get some data
    $array = ['date' => $date, 'score' => $score, 'CO2' => $CO2, 'scorecar' => $scorecar, 'scorebike' => $scorebike];
    $email = "test@test.nl";
    Mail::sendTo($email,'daily.mail', $array);
}

就是这样。只要您在 10 月份的页面布局中包含 JQuery 和 {% framework extras %},上述内容就会起作用。

如果您将其添加到您开发的自定义插件中,原则是相同的,但是 HTML 和 PHP 显然会进入组件中的各自文件,如果你是那样做的。