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 autoload
和 composer 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 显然会进入组件中的各自文件,如果你是那样做的。
对于我在 october cms 中的应用程序,我希望能够通过单击按钮发送邮件。我使用 ajax 请求调用 php 文件,但是当单击按钮时,无论我使用哪个 class,我都会收到错误 'class not found',这无关紧要。我已经将该文件添加到 .htaccess 以便能够在单击按钮时 运行 它。我在文件顶部包含了所有 classes。此外,当我将它变成一个 artisan 命令并使用 php artisan now:send:mail
将它变成 运行 时,它可以正常工作。我已经尝试 运行 composer dump autoload
和 composer 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 显然会进入组件中的各自文件,如果你是那样做的。