2012-12-17 44 views
3

我試圖設置一個Laravel任務,最終被稱爲使用工匠界面的cron作業。在Routes.php中運行基本的Laravel任務 - 「對不起,找不到那個任務。」

在試圖讓一個簡單的任務工作時,我總是收到Laravel無法找到該任務的錯誤:「對不起,找不到那個任務。」

這是我的版本有問題嗎?我使用的是不到一個月前下載的版本,我知道它至少是v3.0,但我不知道如何檢查特定的版本號。

有什麼我需要在start.php中配置來註冊我所有的「任務」?我認爲這是在默認情況下做了保存在/應用程序的所有類/任務

Mytask.php

class Mytask_Task { 

    public function run($arguments) { 
     // Do awesome notifying... 
     echo "Hello from Mytask Task"; 
    } 
} 

routes.php文件

try{ 
    \Laravel\CLI\Command::run(array('mytask')); 
    echo "Success"; 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

回答

2

的原因是,對於非CLI的請求laravel的應用程序工作流程不會自動加載CLI組件。

這就是爲什麼你必須做這樣的:

require_once path('sys') . 'cli' . DS . 'dependencies' . EXT; 
Laravel\CLI\Command::run(array('migrate', 'application')); 
+0

這不是問題,因爲我正在測試一個路由功能,並且CLI組件實際上已加載,因爲被調用的路由不是CLI請求....請參閱下面的答案。 – jamis0n

+0

謝謝!一直在尋找這個爲什麼標準命令不適合我的路線! –

1

所以我就到這條底線,它原來是一個相當令人沮喪的錯誤。

在我使用的特定版本的Laravel v3.x中,任務不會被小寫/不區分大小寫的名稱識別。我被Github上的this post指向了正確的方向。

因此,我將Mytask.php更名爲mytask.php,並且該任務執行正常。

如果有人知道如何檢查Laravel的版本,我正在運行,以便其他人可以知道他們是否受到影響,請讓我知道,我會更新這篇文章。