Laravel 4.2 Illuminate Facade尚未得到解决

时间:2015-02-04 09:53:01

标签: php laravel laravel-4 laravel-facade

我创建了一个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',

3 个答案:

答案 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文件本身的权限解决了这个问题。

我不知道如何或为何更改权限。