Возвращаемое значение Hyn \ Tenancy \ Database \ Connection :: configuration () должно иметь тип массива, возвращается ноль - PullRequest
0 голосов
/ 03 марта 2020

Я начал создавать новый проект на основе Laravel 6.16.0 и создавать мультитенантную среду с Multi-Tenant / Hyn, а для БД я использую MYSQL. Это предназначено для управления всей информацией о клиентах из главной БД, в которой есть все регистры основной информации (ИМЯ БАЗЫ ДАННЫХ, ИМЯ ХОСТА). Я пытался сделать автоматическое c создание БД с соответствующими таблицами, но я понятия не имею, в чем реальная проблема!

Правильный процесс, как только вы закончите, поместите всю информацию на блэйд регистра. форма, следующий шаг, с классом TenantSeeder, вы объявляете, какие объекты вам нужно создать в каждой схеме или БД.

Это мои файлы:

массив 'db' в App \ config \ tenancy. php

'db' => [
    /**
     * The default connection to use; this overrules the Laravel database.default
     * configuration setting. In Laravel this is normally configured to 'mysql'.
     * You can set a environment variable to override the default database
     * connection to - for instance - the tenant connection 'tenant'.
     */
    'default' => env('TENANCY_DEFAULT_CONNECTION'),
    /**
     * Used to give names to the system and tenant database connections. By
     * default we configure 'system' and 'tenant'. The tenant connection
     * is set up automatically by this package.
     *
     * @see src/Database/Connection.php
     * @var system-connection-name The database connection name to use for the global/system database.
     * @var tenant-connection-name The database connection name to use for the tenant database.
     */
    'system-connection-name' => env('TENANCY_SYSTEM_CONNECTION_NAME', Connection::DEFAULT_SYSTEM_NAME),
    'tenant-connection-name' => env('TENANCY_TENANT_CONNECTION_NAME', Connection::DEFAULT_TENANT_NAME),

    /**
     * The tenant division mode specifies to what database websites will be
     * connecting. The default setup is to use a new database per tenant.
     * If using PostgreSQL, a new schema per tenant in the same database can
     * be setup, by optionally setting division mode to 'schema'.
     * In case you prefer to use the same database with a table prefix,
     * set the mode to 'prefix'.
     * To implement a custom division mode, set this to 'bypass'.
     *
     * @see src/Database/Connection.php
     */
    'tenant-division-mode' => env('TENANCY_DATABASE_DIVISION_MODE', 'database'),

    /**
     * The database password generator takes care of creating a valid hashed
     * string used for tenants to connect to the specific database. Do
     * note that this will only work in 'division modes' that set up
     * a connection to a separate database.
     */
    'password-generator' => Hyn\Tenancy\Generators\Database\DefaultPasswordGenerator::class,

    /**
     * The tenant migrations to be run during creation of a tenant. Specify a directory
     * to run the migrations from. If specified these migrations will be executed
     * whenever a new tenant is created.
     *
     * @info set to false to disable auto migrating.
     *
     * @warn this has to be an absolute path, feel free to use helper methods like
     * base_path() or database_path() to set this up.
     */
    'tenant-migrations-path' => database_path('migrations/tenant'),

    /**
     * The default Seeder class used on newly created databases and while
     * running artisan commands that fire seeding.
     *
     * @info requires tenant-migrations-path in order to seed newly created websites.
     * @info seeds stored in `database/seeds/tenants` need to be configured in your composer.json classmap.
     *
     * @warn specify a valid fully qualified class name.
     */
    'tenant-seed-class' => Database\Seeds\TenantSeeder::class,
    //'tenant-seed-class' => App\Seeders\TenantSeeder::class,
    //eg an admin seeder under app/Seeders/AdminSeeder.php:
    //'tenant-seed-class' => App\Seeders\AdminSeeder::class,

    /**
     * Automatically generate a tenant database based on the random id of the
     * website.
     *
     * @info set to false to disable.
     */
    'auto-create-tenant-database' => true,

Приложение \ база данных \ seed \ TenantSeeder. php

<?php

use Illuminate\Database\Seeder;

class TenantSeeder extends Seeder

{
    /**
     * @return void
     *
     */

    public function run()
    {
        /*  factory(\App\Models\Tenant\Broker::class, 5)->create()->each(function($user)
         {
             $user->posts()->save(factory(App\Post::class)->make());
         } ); */

        factory(\App\Models\Tenant\User::class)->create();
    }
}

Если вы заметили, я пытаюсь создать новую таблицу на основе моей пользовательской модели.

Ошибка

Следующая ошибка после нажатия enter для регистрации учетной записи с именем хоста

Конечно, есть файл «Соединение», где вы можете найти соответствующую функцию, и когда я пытаюсь сделать как отладку с print_r и exit();, она не передает $connection параметр correclty. появляется что-то вроде «арендатор».

Я надеюсь, что вы можете мне помочь, или если вы хотите больше информации об этом, я буду в ожидании этого!

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...