1

SonataAdmin でオブジェクトのいくつかのフィールドを表示したい。これらのフィールドの 1 つはデータベース内の整数 (ステータス) ですが、整数を表示したくありません。それ以外の場合は、このフィールドの値に応じた特定の文字列を表示します。

public function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('name')
        ->add('notice')
        ->add('start')
        ->add('end')
        ->add('status')            
    ;
}

出来ますか?

2 番目の質問: 同じ例で、データベース (人) にマップされていないフィールドを追加したいと考えています。これは、他のオブジェクトに関連するデータで計算されるためです。

public function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('name')
        ->add('notice')
        ->add('start')
        ->add('end')
        ->add('status')
        ->add('people')         
    ;
}

Sonata Admin でこれを行うことはできますか?

前もって感謝します。

4

2 に答える 2

4

これを行う最善の方法は、エンティティでカスタム セッターとゲッターを作成することだと思います。

たとえば、エンティティ ユーザーがいるとします。

private $customState; // NOTE -> NO ORM MAPPING because you don't want an actual column

public function setCustomState()   {
         if($this->state){
            $this->customState = 'yup!';
            return $this;
         }
         $this->customState = 'nope!';
         return $this;
    }

public function getCustomState()   {
             return $this->customState;
        }
于 2013-04-11T15:51:26.350 に答える