Подключение к Firestore с использованием Laravel 6 не работает - PullRequest
1 голос
/ 20 сентября 2019

Я пытался вставить данные в firestore, используя мое приложение laravel 6, и похоже, что оно пытается подключиться к mysql.

Я пытался удалить часть db в моем файле .env:

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.Кто-нибудь знает, что мне нужно делать или что я делаю неправильно ???.

Каждая форма помощи высоко ценится.Ура !!!!

1 Ответ

0 голосов
/ 20 сентября 2019

Файл env используется только для переопределения базы данных по умолчанию, определенной в файле config / database.php, в этом файле вам нужно будет изменить эту строку, если вы не хотите использовать mysql:

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

Однако, поскольку он пытается подключиться к базе данных mysql, где-то в вашем проекте вы используете Laravel orm (eloquent) и вам нужно будет интегрировать Firestore на более глубоком уровне в Laravel или воздержаться от использования Eloquent.

...