У меня есть проект, в котором, когда мой пользователь регистрируется, мой проект по умолчанию подключается к моей основной базе данных по схеме publi c.
И когда пользователь успешно выполняет регистрацию, я делаю событие для отправьте электронное письмо, вот мой слушатель события:
class WelcomeNewCompanyListener implements ShouldQueue
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
$data = array (
'name' => $event->company['name'],
'email' => $event->company['email'],
);
$beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
$beautymail->send('emails.welcome', $data, function($message) use ($data)
{
$message
->from('contato@44online.com.br', '44 Online')
->to($data['email'], $data['name'])
->subject('Bem vindo a 44 Online!');
});
}
}
Он работает нормально, когда я использую ту же схему, что и publi c, но если я сделаю запрос, который должен изменить схему для клиента, и пользователь создает ResetPasswordEvent для примера.
Мой проект меняет соединение в промежуточном программном обеспечении здесь:
public function reconnect($companyInfo) {
DB::purge('tenant');
Config::set('database.connections.tenant.schema', $companyInfo[0]->db_schema);
DB::reconnect('tenant');
Schema::connection('tenant')->getConnection()->reconnect();
}
Проблема в том, что когда пользователь выполняет ResetPasswordEvent, мой проект делает задание, но он делает это в базе данных от арендатора, а не для основной таблицы. Я пытаюсь поставить повторное подключение после дескриптора, но не работает, он настаивает на вставке задания в базу данных от арендатора. Что мне делать?
Когда я устанавливаю это соединение в дескрипторе
DB::purge('tenant');
Config::set('database.connections.tenant.schema', 'public');
DB::reconnect('tenant');
Schema::connection('tenant')->getConnection()->reconnect();
, я получаю это неудавшееся задание, и я не использую никакого соединения
PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "qu_users" does not exist
LINE 1: select * from "qu_users" where "qu_users"."users_id" is null...
^ in
Что происходит?