对于我在十月厘米的应用程序,我希望能够通过单击按钮来发送邮件。我用ajax请求调用php文件,但是单击该按钮时,无论我使用哪个类,都收到错误“找不到类”。我已经将文件添加到.htaccess中,以便能够在单击按钮时运行它。我在文件顶部包含了所有类。同样,当我将其转换为手工命令并以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 = "[email protected]";
Mail::sendTo($email, 'daily.mail', $array);
}
}
$mail = new OnDemand;
$mail->send();
我不确定您是要在已开发的自定义十月插件中还是在常规的十月模板中进行此操作。但是,使用ajax按钮发送电子邮件的绝对最简单的方法如下:
1)在十月后端的“设置” |“创建新邮件模板”中。邮件模板
2)在十月的“ CMS”部分中,创建一个新的空白页
3)对于新页面的“标记”部分,按钮HTML:
<button data-request="onPressButton">Send</button>
4)对于新页面的“代码”部分,使用以下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 = "[email protected]";
Mail::sendTo($email,'daily.mail', $array);
}
就是这样。只要您在十月份的页面布局中包含JQuery和{% framework extras %}
,以上内容都将起作用。
如果将其添加到已开发的自定义插件中,则原理是相同的,但如果这样做,HTML和PHP显然会进入组件内的各个文件中。