【问题标题】:Use Google Drive Api in Laravel 5在 Laravel 5 中使用 Google Drive Api
【发布时间】:2015-06-13 03:17:59
【问题描述】:

我是 Laravel 的新手,当然这个问题有一个明显的答案,但是我一直无法将 Laravel 5 与 Google Api 连接起来。

我像往常一样用 composer 安装了 Api,它在我的供应商文件夹中,但现在我不知道如何使用它。

我还没有找到答案(因为这一定非常简单)。

可能我缺少命名空间调用,或类似的东西。

在我的 IndexController 上,我有:

    <?php 

namespace App\Http\Controllers;

class IndexController extends Controller {

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    {
      $client = new Google_Client();
      $client->setApplicationName("Client_Library_Examples");
      $client->setDeveloperKey("HERE_GOES_MY_KEY");

      $service = new Google_Service_Drive($client);
      $results = $service->volumes->listVolumes();

      foreach ($results as $item) {
        echo $item['volumeInfo']['title'], "<br /> \n";
      }
    }

}

我得到的错误是:

找不到类“App\Http\Controllers\Google_Client”

我认为可能是 autoload_classmap 的问题,但是定义了所有 GoogleApi 类,例如:

(...)

'Google_Client' => $vendorDir 。 '/google/apiclient/src/Google/Client.php',

(...)

'Google_Service_Drive' => $vendorDir 。 '/google/apiclient/src/Google/Service/Drive.php',

感谢您的耐心和帮助!

【问题讨论】:

    标签: php laravel-5 google-api-client vendor


    【解决方案1】:

    我想我有。

    我只需要设置:

    use Google_Client; 
    use Google_Service_Drive;
    

    【讨论】:

    • 或者你可以使用完全命名空间的类名,如果你只打算使用一次的话。看起来$client = new \Google_Client() 会很好。通常根命名空间 \ 是默认的,但由于您在自定义命名空间中,您需要使用您的方法或我的方法指定不同的命名空间。您可以看到 PHP 假定可以在 App\Http\Controllers 中找到未命名空间的类 - 与您当前的类相同的命名空间。
    【解决方案2】:

    检查文件 composer.json

    如果不存在,则在类映射数组中添加“vendor/google/apiclient/src/Google”。

    然后运行composer dump-autoload

    "autoload": {
            "classmap": [
                "vendor/google/apiclient/src/Google"
            ]
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 2021-09-25
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多