как сделать общий пользовательский пакет для аутентификации в laravel 5.8 или 6. * - PullRequest
0 голосов
/ 24 февраля 2020

Я должен сделать собственный общий пакет для аутентификации в laravel, но есть одна проблема: всякий раз, когда я использую MongoDB, этот пакет не работает, и при использовании MySQL все в порядке. из-за laravel моделей MySQL работает с красноречивой моделью, а MongoDB работает с моделью jessengers. так что есть идея или хитрость использовать одну модель для разных баз данных?

при использовании MySql

    use Illuminate\Foundation\Auth\User as Authenticatable;

    class User extends Authenticatable {
         protected $table = 'users';
    }

и в MongoDB

    use Jenssegers\Mongodb\Auth\User as Authenticatable;

    class User extends Authenticatable {
          protected $collection = 'users';
    }

и получении ошибки как

Symfony \ Component \ Debug \ Exception \ FatalThrowableError: вызов функции-члена prepare () для null в файле / var / www/test-authentication/vendor/laravel/framework/src/Illuminate/Database/Connection.php

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете попробовать это:

$user = (new \App\User(['name'=>'FirstName', 'email'=>'testemail@email.com']))->setConnection('x-DB');
$user->save();

// without models
(new \App\User(['name'=>'My Name', x-'email'=>'testmail@email.com']))>setConnection('x-DB')->save();

Он работает как create - это метод * stati c, который создает новые данные c, поэтому он использует default connection , Проверьте это, https://laravel.com/docs/5.7/authentication

...