Я не могу выполнить MyCommand в laravel - PullRequest
0 голосов
/ 14 октября 2019

Я создал команду в laravel, и когда я ее выполнил, я обнаружил эту ошибку

php artisan query:all

ReflectionException  : Class App\Services\QueryService does not exist
...

Мой код, который я написал для вызова службы:

<?php

namespace App\Console\Commands;

use App\Services\QueryService;
use Illuminate\Console\Command;

class QueryUnits extends Command
{
    protected $signature = 'query:all';
    protected $description = 'Command description';
    protected $queryService;
    public function __construct(QueryService $queryService)
    {
        $this->queryService = $queryService;
        parent::__construct();
    }
    public function handle()
    {
        $this->info('Query started ...');
        try{
            $this->queryService->queryAll();
        } catch (\Exception $exception){
            $this->error($exception->getMessage());
            return 1;
        }
        $this->info('Query successful');
    }
}

, пожалуйста, помогите мне. пытался решить, но я виноват, почему консоль сказала, что она не существует

Ответы [ 4 ]

0 голосов
/ 14 октября 2019

В вашем классе WialonAllUnits есть синтаксическая ошибка. у вас неправильный оператор конкатенации строк. убедитесь, что изменили {"token":"'+$apiKey+'"} на {"token":"'.$apiKey.'"}

0 голосов
/ 14 октября 2019

это код QueryService

<?php
namespace App\Services;
use App\services\WialonAllUnits;
class QueryService{
        protected $wialonAllUnits;
        public function __construct(
            WialonAllUnits $wialonAllUnits
        )
        {
            $this->wialonAllUnits = $wialonAllUnits;
        }
        public function queryAll(){
            $this->wialonAllUnits->query('af56b938eaf39d332a244913fc831d4b84F6FFA3563A3E2A3C2026BAE4EEFC33653744ED');
        }
    }

, а код WialonAllUnits -

<?php
    namespace App\services;
    use App\Models\all_unit;
    use Carbon\Carbon;
    use GuzzleHttp\Client;
    use Illuminate\Support\Collection;
    class WialonAllUnits{
        public function query(string $apiKey) : Collection {
            $result = collect('aa','sdsd'); //create collect variable to return data in it
            $guzzleClient = new Client([ //create quzzle Client
                'base_uri' => 'http://track.myserver.com/wialon/ajax.html'
            ]);
                $response = $guzzleClient->get('v1/current.json',[
                    'query' =>[
                        'svc' =>'token/login',
                        'params' =>'{"token":"'+$apiKey+'"}',
                    ]
                ]);
                $response = json_decode($response->getBody()->getContents(), true); //create json from $response
                $allUnits = new all_unit(); //create weatherStatus object
                //adding prameters
                $allUnits->unitName()->$response[0];
                //save prameters
                $allUnits->save();
                //push each status to the result to return data later
                $result->push($allUnits);

            //return all result after go outside the loop
            return $result;
        }
    }
0 голосов
/ 14 октября 2019

Вы зарегистрировали это в Console\Handler.php? Вы пробовали composer dump-autoload -o?

0 голосов
/ 14 октября 2019

Если существует App\Services\QueryService, как вы сказали, иногда возникает проблема из-за кеша конфигурации. Так что вам нужно сделать очистить кеш настроек.

php artisan config:clear
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...