Я использую jenssegers / laravel-mongodb с Laravel 5.6, и это здорово, но у меня странная проблема.
У меня есть модель с этой статической функцией:
Class Trigger {
....
public static function onCustomer(User $customer)
{
config(['database.connections.' . $customer->server . '.database' => $customer->database]);
return self::on($customer->server);
}
}
Если я сделаю это:
$result = Trigger::onCustomer(User::find('573072804d358b06308b4567'))->get()
вернет коллекцию с 2 объектами - что правильно!
Тогда, если я сделаю это:
$result = Trigger::onCustomer(User::find('598e003a1736736644debbc7'))->get()
возвращает ту же коллекцию, что и выше, но у пользователя 598e003a1736736644debbc7 нет записей в базе данных.
Если я закрою php artisan tinker и снова введу вторую команду, она вернет пустую коллекцию. Что правильно. Впоследствии, если я выполню первую команду, написанную выше, она вернет пустую коллекцию, даже если в ней 2 объекта.
Даже если я запущу unset ($ result) или $ result = null и снова введу команду, это не даст правильного результата.
Как правильно уничтожить переменную или объект класса Trigger, чтобы при втором запуске это дало правильные результаты?
Я проверял это как в php artisan tinker, так и в браузере. Результат тот же.
Очевидно, что если я буду запускать вышеупомянутые команды в отдельных экземплярах php, все будет работать нормально. Это должно быть как-то связано с кешем модели или чем-то подобным.