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。更多:

http://symfony.com/doc/current/service_container.html