Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-3.2“;无法访问私有财产…”;_Php_Symfony 3.2 - Fatal编程技术网

Php Symfony-3.2“;无法访问私有财产…”;

Php 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

我有个问题。我尝试从DB中获取值并将它们添加到数组中。然后我想使用这个数组在模板中通过细枝{{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;
  }
}

如果属性是私有的,则通常使用getter获取

$language_value->getLanguageLocation();
我建议您将此功能移动到服务,控制器中的ant call服务。更多:


因为它是指您的实体属性访问,所以查看实体代码也会有所帮助。如果属性是
private
,请创建一个访问器函数,以便可以将
公共函数getLanguageLocation(){return$this->languageLocation;}
添加到实体中,然后在视图中调用。