我在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()
没有问题。
有一种方法可以从服务中调用静态属性/方法吗?
答案 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"
}
}