Symfony-3.2 "Cannot access private property..."
Symfony-3.2 "Cannot access private property..."
我有问题。我尝试从数据库中获取值并将它们添加到数组中。然后我想使用这个数组通过 Twig {{ content.language.text_logo }} 在模板中渲染。
如何将数组中对象的属性更改为 "public"?
这是我的IndexController.php
<?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;
}
}
This is screenshot from browser
如果属性是私有的,通常是getters。
$language_value->getLanguageLocation();
而且我建议你把这个功能移到service,controller中的ant call service。更多:
我有问题。我尝试从数据库中获取值并将它们添加到数组中。然后我想使用这个数组通过 Twig {{ content.language.text_logo }} 在模板中渲染。 如何将数组中对象的属性更改为 "public"?
这是我的IndexController.php
<?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;
}
}
This is screenshot from browser
如果属性是私有的,通常是getters。
$language_value->getLanguageLocation();
而且我建议你把这个功能移到service,controller中的ant call service。更多: