将动态数据传递给可调用服务的构造
Passing dynamic data to the construct of a service invokable
我在我的应用程序配置中设置了以下 invokables
"service_manager":{
"invokables":{
"Dbmodel\User":"Application\DbModel\UserModel",
"Dbmodel\App":"Application\DbModel\AppModel"
}
}
所以理论上我可以调用 :
$userMdl = $e->getApplication()->getServiceManager()->get('DbModel\User');
结果将是 class Application\DbModel\UserModel
的实例。好的,这很好,我想现在我的问题是:
在我的用户模型中,我需要将一个整数传递给 __construct
作为 ID 以使用数据库数据 加载模型。
很明显,我无法通过将我的模型作为可调用对象来做到这一点,因为我从来没有机会传递 ID。
有没有一种方法可以创建可以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
一个想法可能是从服务管理器中检索 UserModelFactory
并使用它来构建,使用以用户 ID 作为参数的给定方法,你需要的 UserModel
我在我的应用程序配置中设置了以下 invokables
"service_manager":{
"invokables":{
"Dbmodel\User":"Application\DbModel\UserModel",
"Dbmodel\App":"Application\DbModel\AppModel"
}
}
所以理论上我可以调用 :
$userMdl = $e->getApplication()->getServiceManager()->get('DbModel\User');
结果将是 class Application\DbModel\UserModel
的实例。好的,这很好,我想现在我的问题是:
在我的用户模型中,我需要将一个整数传递给 __construct
作为 ID 以使用数据库数据 加载模型。
很明显,我无法通过将我的模型作为可调用对象来做到这一点,因为我从来没有机会传递 ID。
有没有一种方法可以创建可以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
一个想法可能是从服务管理器中检索 UserModelFactory
并使用它来构建,使用以用户 ID 作为参数的给定方法,你需要的 UserModel