Php Symfony-3.2“;无法访问私有财产…”;
我有个问题。我尝试从DB中获取值并将它们添加到数组中。然后我想使用这个数组在模板中通过细枝{{content.language.text_logo}进行渲染。 如何将数组中对象的属性更改为“public” 这是我的IndexController.phpPhp Symfony-3.2“;无法访问私有财产…”;,php,symfony-3.2,Php,Symfony 3.2,我有个问题。我尝试从DB中获取值并将它们添加到数组中。然后我想使用这个数组在模板中通过细枝{{content.language.text_logo}进行渲染。 如何将数组中对象的属性更改为“public” 这是我的IndexController.php <?php namespace Seandle\HomeBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Com
<?php
namespace Seandle\HomeBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class IndexController extends Controller {
public function indexAction() {
return $this->render('SeandleHomeBundle:Default:index.html.twig', array(
'content' => $this->getLanguage(),
));
}
private function getLanguage() {
$repository = $this->getDoctrine()->getRepository('SeandleHomeBundle:SeandleLanguage');
$languages = $repository->findAll();
$language = array();
foreach ($languages as $language_key => $language_value) {
$language['language'] = array(
$language_value->languageLocation => array(
$language_value->languageVariable => $language_value->languageContent
)
);
}
return $language;
}
}
如果属性是私有的,则通常使用getter获取
$language_value->getLanguageLocation();
我建议您将此功能移动到服务,控制器中的ant call服务。更多:
因为它是指您的实体属性访问,所以查看实体代码也会有所帮助。如果属性是private
,请创建一个访问器函数,以便可以将公共函数getLanguageLocation(){return$this->languageLocation;}
添加到实体中,然后在视图中调用。