Laravel 4.2 Illuminate Facade 没有得到解决

Posted

技术标签:

【中文标题】Laravel 4.2 Illuminate Facade 没有得到解决【英文标题】:Laravel 4.2 Illuminate Facade are not getting resolved 【发布时间】:2015-04-03 19:03:24 【问题描述】:

我通过以下链接创建了一个工匠命令来清除应用程序缓存

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

我试图在我的仪表板控制器中调用它,如下所示

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 数组

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

config/app.php 中的前三行别名

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

【问题讨论】:

【参考方案1】:

这样试试

\Artisan::call('clearCache');

您可以将任何参数作为第二个参数传递

Artisan::call('clearCache', array('--paramname' => 'value'));

【讨论】:

我试过但遇到同样的问题:调用未定义的方法 Illuminate\Support\Facades\Artisan::call() @Ravi:你能不能检查一下你的app/config/app.php,确认你是否在providers下注册了工匠服务商(Illuminate\Foundation\Providers\ArtisanServiceProvider 我添加了 config/app.php 文件详情【参考方案2】:

感谢您的帮助。

我没有让它按我想要的方式工作, 但我在这里添加了一个对我有用的解决方案。 希望它对其他人有用

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

我检查了我的所有外观,发现几个外观 [Auth, Artisan] 没有正确解析。

希望它会有所帮助。

【讨论】:

【参考方案3】:

只是为了帮助任何可能与我有同样问题的人。我只是在调用 Artisan 时遇到了麻烦,但我收到了与 OP 相同的错误消息。

最终成为权限问题。重置 Storage 和 Artisan 文件本身的权限解决了这个问题。

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

【讨论】:

以上是关于Laravel 4.2 Illuminate Facade 没有得到解决的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 站点异常 'Illuminate\Session\TokenMismatchException'

Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider”

未找到 Laravel 5 类“Illuminate\Support\Facades\FormFacade”

Laravel 未找到“Illuminate\Foundation\Application”类

Laravel 5.8 Illuminate\Validation\ValidationException:给定的数据无效

在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”