【问题标题】:Passing dynamic data to the construct of a service invokable将动态数据传递给可调用服务的构造
【发布时间】:2016-08-08 16:02:52
【问题描述】:

我在我的应用程序配置中设置了以下invokables

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

所以理论上我可以打电话:

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

结果将是类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

【问题讨论】:

    标签: zend-framework2 servicemanager


    【解决方案1】:

    一个想法可能是从服务管理器获取UserModelFactory 并使用它来构建,使用以用户ID 作为参数的给定方法,您需要的UserModel

    【讨论】:

    • 我喜欢这个解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2022-01-15
    • 2013-10-09
    • 1970-01-01
    • 2022-01-26
    • 2011-11-27
    相关资源
    最近更新 更多