如何将变量传递给Zend 3字段集?

时间:2018-06-28 14:39:01

标签: zend-framework3

如何将变量传递给Zend 3字段集?

我有一个使用数据库表填充的下拉列表,但是我需要get请求中的产品ID以仅显示该产品可用的选项吗?

1 个答案:

答案 0 :(得分:0)

我通过从fildset工厂请求'router'和'request'对象来解决此问题,以从url获取参数,然后将其传递给fildset。这是代码;

namespace Catalog\Form\Factory;

use Interop\Container\ContainerInterface;
use Zend\ServiceManager\Factory\FactoryInterface;
use Catalog\Form\ProductBrandingOptionPricesFieldset;

class ProductBrandingOptionPricesFieldsetFactory implements FactoryInterface
{    
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        $entityManager = $container->get('doctrine.entitymanager.orm_default');
        
        $router = $container->get('router');
        $request = $container->get('request');
        
        // Get the router match
        $productId = $router->match($request)->getParam("id");

        // Instantiate the controller and inject dependencies
        return new ProductBrandingOptionPricesFieldset($entityManager,$productId);
    }

}