Привязка интерфейса времени выполнения Laravel в зависимости от аутентифицированного пользователя

У меня есть 2 класса, которые реализуют интерфейс, что-то вроде этого:

interface SomeInterface
{
public function init();
}

class ServiceOne implements SomeInterface
{
public function init() {
// ...
}

// ...
}

class ServiceTwo implements SomeInterface
{
public function init() {
// ...
}// ...
}

Я могу связать одно или другое с интерфейсом в Laravel, используя поставщика услуг, например:

$this->app->bind('<NAMESPACE>\SomeInterface', '<NAMESPACE>\ServiceOne');

или же:

$this->app->bind('<NAMESPACE>\SomeInterface', '<NAMESPACE>\ServiceTwo');

Но я хочу сделать это во время выполнения, основываясь на значении, установленном в БД, связанном с аутентифицированным пользователем, поэтому мне нужно схватить пользователя и определить, какой использовать.

Я попытался включить пользователя в метод загрузки поставщика услуг, а затем связать интерфейс, но не могу получить контроль над пользователем там. Всегда возвращает ноль.

Я также пытался использовать промежуточное программное обеспечение и пытаться получить пользователя непосредственно из запроса, но это также возвращает ноль.

Как бы это было сделано, так как я думал, что это будет довольно стандартная вещь?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector