使用Cake 2.1.1。我試圖做一個cron作業來執行一個控制器的動作。哪種方法可以做到這一點?我有一個名爲admin_test的動作OffersController。我希望每2小時運行一次這個動作。目前我在app /控制檯/命令/ SyncapiShell.php做出了殼:CakePHP Shell,如何使用控制器操作
class SyncapiShell extends AppShell {
public $uses = array('Offer');
public function main() {
$this->Offer->admin_test();
}
}
但我得到一個SQLSTATE [42000]語法錯誤或訪問衝突試圖執行shell。 我還使用管理路由,auth組件和ACL。外殼是如何工作的?它忽略了身份驗證和acl權限?通常,admin_test操作只能由特定的經過身份驗證的用戶訪問。
謝謝
看來,我住在另一個星球直到這一刻。謝謝......我一直認爲這個模型應該很瘦。我總是傾向於發揮作用並重用它們,但現在我要回顧我所有的結構。但是,對於使用問題,我在cakephp網站上說過,如果在shell中您想使用其他模型,則必須使用「uses」[鏈接](http://book.cakephp.org/2.0/)。 en/console-and-shells.html) – slacky 2012-04-17 09:15:59
這對於shell是正確的。但是在控制器中,您不希望通過使用屬性添加大量模型來導致非必需的開銷,但很多人出於某種原因執行此操作。 – burzum 2012-04-17 09:36:00
是的,實際上我在控制器中使用'用途'。再次感謝我已經用新邏輯重新考慮了一些模型。你的貢獻非常有幫助。現在一切都開始有了更多的意義。 – slacky 2012-04-17 10:17:31