1

我在 Simfony2 的控制器方法中调用服务。

完全没有问题,它工作正常。

function getFilterListBrandAction($brand_id = 0, $url_params = array()){
 $b = $this->get('brand.service');
 return $this->render('BundleMybundle:Page:page.html.twig', array(
            'param1' => $b->getParam(),
            'do_not_change' => $b::$filter_accepted['brand']
        ));     
    }

当我尝试$b::$filter_accepted['brand']从先前实例化的服务中调用静态属性时,问题就来了。相反,我对其他方法没有问题$b->getParam()

有一种方法可以从服务中调用静态属性/方法吗?

4

1 回答 1

2

是的,可以从服务访问公共属性。

这对我有用:

您的服务:

/**
 * Your Service
 */
class YourService
{
    public static $filter_accepted = array('brand' => 'my brand');
}

控制器

class YourController extends ContainerAware
{
    public function myAction()
    {
        $service = $this->container->get('acme.my_service');

        var_dump($service::$filter_accepted);
        // Returns: array(1) { ["brand"]=> string(8) "my brand" }

        var_dump($service::$filter_accepted['brand']);
        // Returns: string(8) "my brand"
    }
}
于 2014-02-14T13:56:19.577 回答