2017-11-12 3 views
0

ID値がアプリケーションではなくデータベースで作成されるデータベーステーブルをセットアップしました。Symfony3 EasyAdminカスタム非自動IDカラム

/** 
* @ORM\Column(type="bigint", precision=14, options={"unsigned":true}) 
* @ORM\Id() 
* @ORM\GeneratedValue("NONE") 
*/ 
private $id; 

これはsymfonyで正常に動作しますが、私はEasyAdminおよびEasyAdminは、単に「ID」列を省略使用してテーブルを編集しようとしています。

私はEasyAdminのドキュメントからmanipulate edit/new views configurationを知ることができました。

easy_admin: 
    entities: 
     - AppBundle\Entity\Category 
     - AppBundle\Entity\Product 

が質問:

今、私は次のような構成(言及idProductのためである)を持つ

1-どのようにセットアップYAMLの設定を行うので、idフィールドも表示されますか?私はリストする必要はありませんので、私は他のすべてのフィールドに加えて、「ID」をしたいことを伝える方法があり、

easy_admin: 
    entities: 
     Product: 
      class: AppBundle\Entity\Product 
      form: 
       fields: 
        - 'id' 

しかし、これが唯一の「ID」を示しています。私は、これは部分的に動作することがわかりました手動でですか?

2私の元の設定では、YAMLファイル内にダッシュ( - )を持つエンティティのリストを使用しています。私はYAMLのnoobです。私がProduct:の鍵を作ったとき、私はもうダッシュを使うことができません。ダッシュリストを使い続ける方法はありますか?例えば、以下のコードは動作しません、それは有効なYAMLではないと言います。

easy_admin: 
    entities: 
     - AppBundle\Entity\Category 
     Product: 
      class: AppBundle\Entity\Product 
      form: 
       fields: 
        - 'id' 

まあ、今のところ私はこのような問題を解決し、完全にダッシュ表記を放棄した:

easy_admin: 
    entities: 
     Category: 
      class: AppBundle\Entity\Category 
     Store: 
      class: AppBundle\Entity\Store 
     Product: 
      class: AppBundle\Entity\Product 
      edit: 
       fields: 
        - { property: 'stores', label: 'Stores', type_options: { by_reference: false } } 
      form: 
       fields: 
        - 'id' 
        - 'name' 
        - 'category' 
        - 'stores' 

答えて

0

Q1:あなたは、エンティティ・コントローラに基づいてカスタマイズを使用することができます。ここでdocを参照してください。https://symfony.com/doc/master/bundles/EasyAdminBundle/book/complex-dynamic-backends.html#customization-based-on-entity-controllers

app/config/config.yml 
User: 
    class: AppBundle\Entity\User 
    controller: UserBundle\Controller\Admin\UserController 

そして、あなたのUserControllerでは、このようなことができます。あなたがメソッドのシグネチャに正確なエンティティ名を使用する必要があります注意を払ってください:あなたのケースで

protected function createUserEntityFormBuilder($entity, $view) 
{ 
    $form = parent::createEntityFormBuilder($entity, $view); 

    $form->add('Anyfield', TextType::class, [ 
     'label' => 'id' // feel free to add other options 
    ]); // add fieldlike you would do in FormType 
    $form->remove('anyField'); 

    return $form; 
} 

Q2をユーザー EntityFormBuilderを作成します。私は確かにこの質問に答えることはできません。私は "ダッシュ"表記法を使用しません。 多分ここでdocを見てください:https://symfony.com/doc/current/components/yaml/yaml_format.html#collections

+0

ダッシュ表記法はずっと素敵です。なぜなら、単にエンティティにパスを入れなければならないからです。しかし、今はconfig.ymlを変更するだけで問題を解決しました –

関連する問題