2016-04-16 6 views
0

У меня есть следующий invokables множества в моем приложении конфигурацииПередача динамических данных конструкта службы invokable

"service_manager":{ 
"invokables":{ 
    "Dbmodel\\User":"Application\\DbModel\\UserModel", 
    "Dbmodel\\App":"Application\\DbModel\\AppModel" 
} 
} 

Так теория, что я могу назвать:

$userMdl = $e->getApplication()->getServiceManager()->get('DbModel\User');

а также результатом будет экземпляр класса Application\DbModel\UserModel. OK Это замечательно, что теперь работает я полагаю, мой вопрос заключается в следующем:

В моей модели пользователя Мне нужно передать целое число в __construct для ID, чтобы загрузить модель с базами данных.

Очевидно, я не могу сделать это, имея мои модели как invokables, поскольку у меня никогда не будет возможности пройти идентификатор.

Есть ли способ создать завод, который вы можете использовать с помощью объекта-объекта, который вы можете использовать supply an argument such as a user id for my situation.

An example would be using it in a controller to get a model based on a get request for a user based on id

ответ

0

Одна идея может быть с UserModelFactory извлекаемый из диспетчера службы и использовать, чтобы построить с данным методом, который принимает идентификатор пользователя в качестве параметра, то UserModel, что вам нужно

+0

Мне нравится это решение – slicks1