Установка паспорта Laravel на динамическую базу данных - PullRequest
0 голосов
/ 10 мая 2018

Я создаю базу данных для каждой регистрации клиента в моем приложении laravel.Я установил паспорт для авторизации.Я успешно создал базу данных и запустил миграцию для паспорта.Команда passport: install не работает для вновь созданной базы данных.Есть ли способ запустить паспорт команды: установить для моей новой базы данных.

  $this->info(sprintf("Dropping database if exists : %s", $dbName));
            DBHelper::drop($dbName);

            $this->info("Setting up database for client");

            //Create migration table
            Artisan::call("migrate:install", array(
                "--database" => DBHelper::connect($dbName)
            ));

            //Run migration
            Artisan::call('migrate',
                array('--path' => 'database/migrations/client',
                    '--database' => DBHelper::connect($dbName))); //DBHelper::connect($dbName) : Create new database config and then DB::reconnect()

            //Install passport migration
            Artisan::call('migrate', ['--path' => 'vendor/laravel/passport/database/migrations']);
            //Install passport
            Artisan::call('passport:install');

            //Populate database
            Artisan::call('db:seed',
                array('--database' => DBHelper::connect($dbName)));

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Обычно вы используете следующий код в вашем контроллере для исполнения вызова Artisan:

Artisan :: вызов ( 'паспорт: установить'); Однако это не работает для паспорта: установите, и вы получите ошибку:

В пространстве имен "паспорт" не определено ни одной команды

Чтобы это исправить, вы должны добавить следующий код в метод загрузки на AppServiceProvider.php:

<?php

namespace App\Providers;

use Laravel\Passport\Console\ClientCommand;
use Laravel\Passport\Console\InstallCommand;
use Laravel\Passport\Console\KeysCommand;
use Laravel\Passport\Passport;

use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
    Passport::routes();

    /*ADD THIS LINES*/
    $this->commands([
        InstallCommand::class,
        ClientCommand::class,
        KeysCommand::class,
    ]);
}
0 голосов
/ 26 сентября 2018

После создания базы данных используйте приведенные ниже команды для создания миграций и установки паспорта.

Artisan::call('migrate:refresh', ['--seed' => true]);

Artisan::call('migrate',['--path' => 'vendor/laravel/passport/database/migrations','--force' => true]);

shell_exec('php ../artisan passport:install');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...