3

artisan インターフェイスを使用して、最終的に cron ジョブとして呼び出されるように Laravel タスクをセットアップしようとしています。

単純なタスクを機能させようとすると、Laravel がそのタスクを見つけられないというエラーが表示され続けます。「申し訳ありませんが、そのタスクが見つかりません。」

これは私のバージョンに問題がありますか? ダウンロードしてから 1 か月も経っていないバージョンを使用していますが、これは少なくとも v3.0 であることがわかっていますが、特定のバージョン番号を確認する方法がわかりません。

すべての「タスク」を登録するために start.php で設定する必要があるものはありますか? これは /application/tasks に保存されたすべてのクラスに対してデフォルトで行われると思いました

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();
}
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

だから私はこれの底にたどり着きました、そしてそれはかなりイライラするエラーであることがわかりました.

私が使用しているLaravelの特定のv3.xバージョンでは、タスクは小文字/大文字と小文字を区別しない名前で認識されません。Githubのこの投稿によって、正しい方向に向けられました。

だから私はに名前を変更Mytask.phpmytask.php、タスクは正常に実行されます。

私が実行している Laravel のバージョンを確認して、他の人が影響を受けているかどうかを確認する方法を誰かが知っている場合は、お知らせください。この投稿を更新します。

于 2012-12-18T14:44:47.237 に答える