Я создал команду ремесленника, чтобы очистить кеш приложения, перейдя по ссылке ниже
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',
Попробуй вот так
\Artisan::call('clearCache');
Вы можете передать любые параметры в качестве второго аргумента
Artisan::call('clearCache', array('--paramname' => 'value'));
Спасибо за помощь.
Я не получил это работает так, как я хотел,
Но я добавляю сюда решение, которое работает для меня.
Надеюсь, это будет работать для кого-то еще
global $app;
$artisan = new \Illuminate\Foundation\Artisan($app);
$artisan->call('command:clearCache');
Я проверил весь фасад и обнаружил, что пара фасадов [Auth, Artisan] не решается правильно.
Надеюсь, это поможет.
Просто чтобы помочь любому, у кого может быть такая же проблема, как у меня. У меня были проблемы только с вызовом Artisan, но у меня было то же сообщение об ошибке, что и у OP.
Это закончилось тем, что проблема с разрешениями. Сброс разрешений для хранилища и самого файла Artisan решил эту проблему.
Я не знаю, как и почему изменились разрешения.