我创建了一个artisan命令,通过以下链接
清除应用程序缓存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() 这意味着外墙无法解决服务提供商。
,我得到了以下异常
"命令&#34>中没有定义命令。命名空间。
我尝试使用xdebug进行2个不同外观的调试(One(App facade)已经解决,Artisan没有得到解决)。
我对外墙及其工作方式了解不多,但它们来自laravel框架,所以帮助更少。
修改 config / app.php
中的前两行provider数组'providers' => array(
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
config / app.php中的前三行别名
'aliases' => array(
'App' => 'Illuminate\Support\Facades\App',
'Artisan' => 'Illuminate\Support\Facades\Artisan',
答案 0 :(得分:1)
试试这个
\Artisan::call('clearCache');
您可以将任何参数作为第二个参数传递
Artisan::call('clearCache', array('--paramname' => 'value'));
答案 1 :(得分:1)
感谢您的帮助。
我没有按照我想要的方式工作, 但我在这里添加一个适合我的解决方案。 希望它适用于其他人
global $app;
$artisan = new \Illuminate\Foundation\Artisan($app);
$artisan->call('command:clearCache');
我检查了我所有的立面,发现几个外观[Auth,Artisan]没有正确解决。
希望它会有所帮助。
答案 2 :(得分:1)
只是为了帮助那些可能和我一样有同样问题的人。我只是在调用Artisan时遇到了麻烦,但是我有与OP相同的错误信息。
最终成为权限问题。重置Storage和Artisan文件本身的权限解决了这个问题。
我不知道如何或为何更改权限。