私はエンティティを持っています。私はエンティティがポップアップで読み込まれるときにいくつかのJSコードを実行する必要があります。 adminクラスの設定でカスタムJS/HTMLコードをエンティティフォームに追加する方法はありますか。例えば。あなたは、このようにそれを行うことができますオプションエンティティフォームにJSコードを追加するには?
5
A
答えて
7
としてテンプレートを渡す: -
このようなあなたのFormMapperでクラス・パラメータを追加します -
保護機能configureFormFields(FormMapper $ formMapper) {$ formMapper - >追加( '説明'、NULL、配列( 'ATTR' =>配列( 'クラス' => 'for_popup')、 '必要' =>偽)) }
--- --- ---- base_edit.html.twigソナタCRUDテンプレート
--- edit.html.twigからedit.html.twig
/base_edit.html.twig
{% extends 'YourBundle:YourAdminClass:base_edit.html.twig' %}
を拡張
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
// Your JS code here
</script>
{% endblock %}
Sonata CRUDではなく、edit.html.twig
をgetEditTemplate関数(Adminクラス内)で定義して使用してください。
public function getEditTemplate()
{
return 'YourAdminBundle:ControllerName:edit.html.twig';
}
管理サービスをインジェクトするときにカスタム編集テンプレートを設定することもできます。
<service id="sonata.admin.bf" class="Wyzbiz\Bundle\MainBundle\Admin\BfAdmin">
<tag name="sonata.admin" manager_type="orm" group="Content" label="BFs"/>
<argument />
<argument>Wyzbiz\Bundle\MainBundle\Entity\Bf</argument>
<argument>WyzbizMainBundle:CRUD</argument>
<call method="setTranslationDomain"><argument>WyzbizMainBundle</argument></call>
<call method="setTemplate"><argument>list</argument>
<argument>WyzbizMainBundle:CRUD/Bf:list.html.twig</argument></call>
</service>
3
@Jessica代わりにあなたの管理者クラスのconfigureFormFieldsメソッド内の$ this - >代わりにsetTemplate()を使用するのでは、あなたの代わりにgetTemplateメソッドの独自の実装を追加することができ、鉱山は次のようになります。
/**
* Override core method to display custom template(s)
*/
public function getTemplate($name)
{
switch ($name) {
case 'edit':
return 'YourAdminBundle:YourAdminEntity:edit.html.twig';
break;
default:
return parent::getTemplate($name);
break;
}
}
関連する問題
- 1. JHipsterエンティティフォームをJDLファイルに追加する際のエラー
- 2. JSファイルの中にHTMLコードを追加するには?
- 3. ボタンクリックでJSにコードを追加
- 4. jsコードに正規表現を追加
- 5. js条件を追加するには
- 6. jsコードにテキストを含む余分なクラス(.info)を追加するには
- 7. PHPコード行に追加するには?
- 8. JSStoreにJSページを追加
- 9. ビジュアルスタジオプロジェクトにjsライブラリを追加
- 10. d3.js canvasをdivに追加する
- 11. CompareValidatorにJS検証を追加する
- 12. Vue JS webpackにXHRを追加する
- 13. JSフォームにTARGETを追加する
- 14. GreasemonkeyスクリプトにJS SDKを追加する
- 15. イメージギャラリーに矢印を追加する - JS
- 16. JS配列に値を追加する
- 17. js-routes(:: format)をURLに追加する
- 18. JSリストボックスにボタンを追加する
- 19. d3.jsにテキストを追加する
- 20. ノックアウトjs、配列に追加の要素を追加する
- 21. 製品詳細ページにJSコードを追加magento
- 22. エンティティフォームからコントローラにデータを渡すSymfony3
- 23. Javascript jsを追加する
- 24. 角型2のコンポーネントにカスタムjsスクリプトを追加するには
- 25. JS&CSSをWordPressページに追加するには
- 26. 静的な.jsファイルをMeteorプロジェクトに追加するには?
- 27. Stimulsoft php jsレポートに式パラメータを追加するには?
- 28. wordpressショートコードの中にインラインCSS/jsを追加するには
- 29. idTabsプラグインのJSスニペットにfadeInとfadeOutを追加するには?
- 30. Ruby Mechanize gemにJSサポートを追加するには?
base_editはソナタクリードテンプレートを拡張する必要がありますか?このテンプレートに拡張タグを指定するか、このテンプレートをソナタバンドルと同じパスに置くことができますか?あなたの助けをありがとう –
ソナタの何かに触れないでください。 あなたのYourBundle/Resources/YourController /フォルダにsonataのbase_edit.html.twigをコピーしてください。答えを更新して方法を説明します。 – Amit
Sonataは明らかにgetEditTemplate()関数をgetTemplate( 'edit')に置き換えました。これはこれをより困難にしています。 私がやったことは次の通りです: $ this-> setTemplate( 'edit'、 'MyBundle:Admin:edit_user.html.twig'); 内の管理者のconfigureFormFields() – Jessica