2017-05-20 7 views
-1

私は問題があります。私はDBから値を取得し、それらの配列に追加しようとします。次に、この配列をTwig {{content.language.text_logo}}を使ってテンプレートにレンダリングしたいと考えています。 配列内のオブジェクトのプロパティを「public」に変更するにはどうすればよいですか?Symfony-3.2 "プライベートプロパティにアクセスできない..."

これは私の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

+0

それはあなたのエンティティプロパティへのアクセスを参照しているので、同様のエンティティコードを見るために役立つだろう。プロパティが 'private'の場合は、アクセサー関数を作成して、' public function getLanguageLocation(){return $ this-> languageLocation;} 'をエンティティに追加してビューで呼び出すことができます。 –

答えて

1

プロパティがプライベートの場合、通常はゲッターとなってきました。

$language_value->getLanguageLocation(); 

そして、この機能をコントローラのant callサービスに移すことをお勧めします。多く:

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

+0

ありがとう、それは:) –

関連する問題