2017-04-12 14 views
-1

をスケジュールタスクには存在しないのですか?私は間違って何をしていますか?それはです99.9%で取得エラーコマンドは、私はこのチュートリアルを、以下のいLaravel

Test123.php

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use Carbon\Carbon; 

use Response; 
use Config; 
use DB; 
use GuzzleHttp\Exception\GuzzleException; 
use GuzzleHttp\Client; 

class Test123 extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'abcd'; 

    /** 
    * The console command description. 
    * 
    * @var string 
    */ 
    protected $description = 'some description'; 

    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() 
    { 
      $parameters = [ 
     'attribute1' => 'val1', 
     'attribute2' => 'val2', 
     '_token' => Config::get('app.secret') 
     ]; 
     $formattedParameters = http_build_query($parameters); 
     $statusCode = 200; 
     $url = "url?{$formattedParameters}"; 

     $client = new Client(); 
     $res = $client->get($url); 

     $jsonArray = json_decode($res->getBody(),true); 
     $field1= $jsonArray['field1']; 

     DB::table('table_name')->insert(
    ['field1' => $field1] 
); 
    } 
} 

Kernel.php

<?php 

namespace App\Console; 

use Illuminate\Console\Scheduling\Schedule; 
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 
use Carbon\Carbon; 

use Response; 
use Config; 
use DB; 
use GuzzleHttp\Exception\GuzzleException; 
use GuzzleHttp\Client; 


class Kernel extends ConsoleKernel 
{ 
    /** 
    * The Artisan commands provided by your application. 
    * 
    * @var array 
    */ 
    protected $commands = [ 
    \App\Console\Command\Test123::class, 
    ]; 

    /** 
    * Define the application's command schedule. 
    * 
    * @param \Illuminate\Console\Scheduling\Schedule $schedule 
    * @return void 
    */ 
    protected function schedule(Schedule $schedule) 
    { 

     $schedule->command('abcd')->everyMinute(); 



    } 

    /** 
    * Register the Closure based commands for the application. 
    * 
    * @return void 
    */ 
    protected function commands() 
    { 
     require base_path('routes/console.php'); 
    } 
} 
+0

@apokryfos私はしましたが、どちらもうまくいかないようです:/私はチュートリアルに従ってHappyBirthdayという新しいファイルを作成しましたが、その後HappyBirthdayも存在しません。 App \ Console \ Command \ Test123 :: classを削除すると、他のコマンドを実行できます。しかし、記憶からすべてを洗い流す方法はありますか?キャッシュをクリアしてください。 –

答えて

1

2つの問題があります。

まず、あなたのKernel.phpファイルで、あなたはこの持っている:

protected $commands = [ 
    App\Console\Command\Test123::class, 
]; 

を使用すると、バックスラッシュ(\)とクラス名を起動しなかったので、それは現在の名前空間に指定されたクラスの相対探しますKernel.phpの場合はApp\Consoleです。それはあなたのエラーがクラスApp\Console\App\Console\Command\Test123を見つけることができないと述べている理由です。

だから、あなたがすることに変更した場合:

protected $commands = [ 
    \App\Console\Command\Test123::class, 
]; 

それが今でルート名前空間から\App\Console\Command\Test123を探ししようとします。

これは2番目の問題につながります。 Test123クラスでは、ではなく、ではなく、App\Console\Commandsという名前空間が指定されています。

ファイルがapp\Console\Commandsディレクトリにある場合は、ネームスペースが正しいため、正しいクラスを探すためにKernel.phpファイルを修正する必要があります。ファイルがapp\Console\Commandディレクトリにある場合は、ネームスペースが正しくないため、Test123クラスのネームスペース宣言を修正する必要があります。

+0

現在、私のファイルTest123.phpはapp/Console/Commandsフォルダにあり、これはkernel.phpの私の現在のコードです。$ commands = [ \ App \ Console \ Command \ Test123 :: class、 ];今何を変更する必要がありますか? –

+0

名前空間を修正して余分なものを削除しましたが、このエラーが発生します。[Symfony \ Component \ Console \ Exception \ RuntimeException] 引数が不足しています(「名前」がありません)。 –

+0

php artisan abcdを実行すると、コードは動作して実行されますが、php artisan make:listはまだ動作していないようです。コメントエラーよりも上になる –

0

I'm getting

Class App\Console\App\Console\Command\Test123 does not exist

How to fix above issue?

あなたがTest123クラスを作成したら、あなたは

composer dumpautoload 

を行うことを忘れてしまったので、 。今やってよかったです。

EDIT

あなたはショーに私はかなりそれが代わりにApp\Console\Command\Test123する必要があります確信しているように私に匂いがあなたのクラスへのフルネームスペースを見ているエラーメッセージ。その場合は、アレイを次のように編集してください。

protected $commands = [ 
    \App\Console\Command\Test123::class, 
]; 
+0

私は述べたように私は作者dumpautoloadをやったが、うまくいかないようだ。同じエラー –

+0

編集の編集を参照してください –

+0

これは非常に奇妙です。私は上記のように変更を行いましたが、その後、php artisanまたはphp artisan dump-autoloadまたはphp artisan dumpautoloadを実行できません。私は作曲家のdump-autoloadをやっていました。しかし、私はかなり固執していると思います。私はphp artisan serveを実行できません:/ –

関連する問題