cron ジョブを介して使用したいモデルとコントローラー メソッドを作成しましたが、調査の結果、コンソール/コマンドを使用してシェルとしてこれを行う必要があるようです。私はいくつかのさまざまなSOの投稿とマニュアルを読みましたが、それはすべて私の頭を少し超えています。
これは私がこれまでに持っていたものです - 私のモデルとコントローラで持っていたものからかなり引き裂かれました。これを機能させる方法について、誰かが私にいくつかの指針を教えてもらえますか? 少し早いですがお礼を。
**** 編集 - これで動作します ****
<?php
App::uses('Shell', 'Console');
App::uses('CakeEmail', 'Network/Email');
class OldClaimsShell extends AppShell {
// Include the ExpesesCLaim mdel
public $uses = array('ExpenseClaim');
/**
* When fired it checks for claims over 7 days that are still "submitted" and have therefore not been dealt with. Function has to be called MAIN - see cake docs
*/
public function main() {
// Find all claims with status "submitted" that are older than 7 days
$answer = $this->ExpenseClaim->haveClaimsOlderThan7Days();
//debug($answer);
if ($answer === true) {
$Email = new CakeEmail();
$Email->domain('www.xxx.co.uk');
$Email->template('oldExpenseClaimReminder');
$Email->to('xxx@xxx.co.uk');
$Email->from('xx@xx.co.uk');
$Email->subject('There are outstanding claims over 7 days old - Please Review');
$Email->viewVars(array('link' => 'http://xxx.xxx.co.uk'));
$Email->emailFormat('both');
$Email->send();
//$this->out('Email sent');
}
}
}
?>
回答とコメントに基づいて質問を修正しました-Cronは機能しませんが、これは機能するようになりました。これについては、別の質問で検討します。