3

我正在尝试设置一个 Laravel 任务,最终使用工匠界面将其称为 cron 作业。

在尝试让一个简单的任务工作时,我不断收到 Laravel 找不到该任务的错误:“抱歉,找不到该任务。”

这是我的版本有问题吗?我正在使用不到一个月前下载的版本,我知道它至少是 v3.0,但我不知道如何检查具体的版本号。

我需要在 start.php 中配置什么来注册我的所有“任务”吗?我认为这是默认情况下保存在 /application/tasks 中的所有类

我的任务.php

class Mytask_Task {

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

路由.php

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

2 回答 2

2

原因是对于非 cli 请求,laravel 的应用程序工作流不会自动加载 CLI 组件。

这就是为什么你必须这样做:

require_once path('sys') . 'cli' . DS . 'dependencies' . EXT;
Laravel\CLI\Command::run(array('migrate', 'application'));
于 2012-12-17T22:41:56.193 回答
1

所以我深究了这一点,结果证明这是一个非常令人沮丧的错误。

在我使用的特定 v3.x 版本的 Laravel 中,任务不能被它们的小写/不区分大小写的名称识别。Github上的这篇文章为我指明了正确的方向。

所以我重命名Mytask.phpmytask.php,任务执行得很好。

如果有人知道如何检查我正在运行的 Laravel 版本,以便其他人知道他们是否受到影响,请告诉我,我会更新这篇文章。

于 2012-12-18T14:44:47.237 回答