Laravel 4.2 Освещение фасада не решается

Я создал команду ремесленника, чтобы очистить кеш приложения, перейдя по ссылке ниже

http://code.tutsplus.com/tutorials/your-one-stop-guide-to-laravel-commands--net-30349

Я пытаюсь вызвать его внутри контроллера Dashboard, как показано ниже

namespace ABC;

class DashboardController extends \BaseController {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    var $viewContent = [];

    public function index() {
        //Method one
        \Artisan::call('command:clearCache');

        //Method two
        $console=new \Illuminate\Console\Application;
        $console->call('command:clearCache');
        //Other function goes here

    }
 }

Я получил исключение для кода выше (метод один в коде выше):

Вызов неопределенного метода Illuminate\Support\Facades\Artisan::call() Это означает, что фасады не разрешаются поставщиками услуг.

для второго метода я получил исключение ниже

В пространстве имен "command" не определены команды.

Я попытался отладить, используя xdebug для 2 разных фасадов (Один (Фасад приложения) разрешен там, где Artisan не разрешена ошибка).

Я немного знаю о фасадах и о том, как они работают, но они из рамок Laravel, поэтому помогают меньше.

Отредактируйте первые две строки массива провайдеров в config/app.php

'providers' => array(
        'Illuminate\Foundation\Providers\ArtisanServiceProvider',

Первые три строки псевдонимов в config/app.php

 'aliases' => array(
        'App' => 'Illuminate\Support\Facades\App',
        'Artisan' => 'Illuminate\Support\Facades\Artisan',

3 ответа

Решение

Спасибо за помощь.

Я не получил это работает так, как я хотел, но я добавляю здесь решение, которое работает для меня. Надеюсь, это будет работать для кого-то еще

    global $app;
    $artisan = new \Illuminate\Foundation\Artisan($app);
    $artisan->call('command:clearCache');

Я проверил весь фасад и обнаружил, что пара фасадов [Auth, Artisan] не решаются правильно.

Надеюсь, это поможет.

Просто чтобы помочь любому, у кого может быть такая же проблема, как у меня. У меня были проблемы только с вызовом Artisan, но у меня было то же сообщение об ошибке, что и у OP.

Это закончилось тем, что проблема с разрешениями. Сброс разрешений для хранилища и самого файла Artisan решил эту проблему.

Я не знаю, как и почему изменились разрешения.

Попробуй вот так

\Artisan::call('clearCache');

Вы можете передать любые параметры в качестве второго аргумента

Artisan::call('clearCache', array('--paramname' => 'value'));
Другие вопросы по тегам