【问题标题】:App::environment not found with Laravel 4.1Laravel 4.1 找不到 App::environment
【发布时间】:2014-05-07 22:38:07
【问题描述】:

我的一个包(Oauth2 Madewithlove 包)中有一个文件,其中我有一个正在使用的函数。在这个功能中,我想为我的本地环境和我的生产环境使用某个 Facebook 应用程序。因此函数看起来像这样:

public function search($query = '', $type = '') {

        if(App::environment('local')) {
            $url = 'https://graph.facebook.com/search?key=value&access_token=********|***************&q='.str_replace(' ', '+', $query).'&type='.$type;
        }
        else {
            $url = 'https://graph.facebook.com/search?key=value&access_token=***********|*****************&q='.str_replace(' ', '+', $query).'&type='.$type;
        }

        return json_decode(file_get_contents($url), true);
    }

加星标的部分是应用 ID 和机密。但是,运行此程序时,我收到错误:

Class 'OAuth2\Provider\App' not found

文件路径:

/­vendor/­madewithlove/­laravel-oauth2/­src/­OAuth2/­Provider/­Facebook.php 

这指向 App:environment 行。我已经在 bootstrap/start.php 文件中将此添加到我的配置中:

$env = $app->detectEnvironment(array(

    'local' => array('******-*******-MacBook-Pro.local'),

));

知道为什么我会收到错误消息吗?谢谢。

【问题讨论】:

    标签: laravel laravel-4 environment


    【解决方案1】:

    用途:

    \App::environment();
    

    Laravel 没有命名空间,所以每个类都在根命名空间中。由于您的类Facebook 位于OAuth2\Provider 命名空间中,因此它会查找OAuth2\Provider\App,除非您指定它位于带有前导\ 的根命名空间中。


    您也可以使用use 解决此问题:

    <?php namespace OAuth2\Provider
    
    // Imports use the root namespace
    use App;
    
    class Facaebook
    {
    
        public function __construct()
        {
            var_dump(App::environment());
        }
    
    }
    

    【讨论】:

    • 这就是问题所在。谢谢。
    猜你喜欢
    • 2014-06-25
    • 2014-01-04
    • 2018-04-11
    • 2016-08-21
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2014-01-02
    • 2021-12-28
    相关资源
    最近更新 更多