1

我一直在尝试使用我的 laravel 6 应用程序将数据插入到 Firestore 中,它看起来像是在尝试连接到 mysql。

我试图删除 .env 文件中的 db 部分:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

但它似乎不起作用。首先,这是我尝试插入时遇到的错误:

"message": "SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

这是我的 php 代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Google\Cloud\Firestore\FirestoreClient;
use Google\Cloud\Firestore\FireStoreDocument;

class LogisticsController extends Controller
{

    public $firestoreClient;

    /**
     * __construct initialize firestore client
     *
     * @return void
     */
    public function __construct()
    {

        $this->firestoreClient = new FirestoreClient([
            'projectId' => 'my-project-id',
        ]);

    }

    /**
     * create  a new logistics company
     *
     * @return 
     */
    protected function create(Request $request)
    {

        //get and validate form data
        $validatedData = $request->validate([
            'company_name' => 'required|unique:company_name|max:255',
            'registration_no' => 'required'
        ]);

        $company_name = $request->company_name;
        $registration_no = $request->registration_no;

        $this->firestoreClient->addDocument('Logistics_Companies', [
            'company_name' =>  $company_name,
            'registration_no' => $registration_no,
            'created_at' => new FirestoreTimestamp,
            'updated_at' => '',
            'deleted_at' => ''  
        ]);
    } 
}

我不知道为什么它试图使用 mysql 连接。任何人都知道我需要做什么或做错了什么???。

每种形式的帮助都受到高度赞赏。干杯!!!!

4

1 回答 1

0

env 文件仅用于覆盖 config/databases.php 文件中定义的默认数据库,如果您不想使用 mysql,则需要在该文件中修改此行:

'default' => env('DB_CONNECTION', 'mysql')

但是,由于它正在尝试连接到 mysql 数据库,因此在您的项目中的某个地方,您正在使用 Laravel 的 orm(雄辩),并且需要将 Firestore 更深层次地集成到 Laravel 中,或者避免使用 Eloquent。

于 2019-09-20T16:50:20.277 回答