Symfony2 - 从服务调用静态属性

时间:2014-02-14 12:47:51

标签: web-services symfony service controller symfony-2.4

我在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()没有问题。

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

1 个答案:

答案 0 :(得分: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"
    }
}