問題タブ [sonata-media-bundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Sonata Admin Bundle での複数ファイルのアップロードの処理
したがって、多くの調査を行った後、結果が得られませんでした (おそらく私は下手な検索者です) 私は次のトピックから来ました: SonataAdmin Bundle File Upload Error and SonataMediaBundle - how to upload images? 問題の解決策が見つかりません。私はエンティティを持っておりCompany
、各会社は複数のファイルを持つことができます: PDF、DOC、XLS、その他の MIME/タイプ。私はVichUploaderBundleを使用することを考えていますが、ドキュメントは 1 対 1 の関係の例のみをカバーしているため、私の質問は、これを実現するための例や方法を教えてくれる人はいますか? ファイルをアップロードして会社に添付するということですか?
EDIT1 の作業とテスト
前に言ったように、SonataMediaBundle を別の管理モジュールに統合しようとしていますが、機能させることができません。私は今まで何をしていましたか?
もちろん、すべてのバンドルをインストールして構成します。SonataAdminBundle と SonataMediaBundle はどちらも正常に動作しています。
ManyToMany\Application\Sonata\MediaBundle\Entity\Media.php
関係を追加することにより、必要な機能を追加するように変更されたクラス
次のように PL\OrderBundle\Entity\Order.php に必要なフィールドを追加します。
OrderAdmin.php ファイルの configureFormFields を次のように変更しました。
しかし、ファイルをアップロードできないため、これは機能しません。これは、同じフォームから多くのファイルをアップロードし、作成中の注文に添付したいものです。作成アクションにアクセスしたときに取得するビジュアルについては、添付の画像を参照してください。
私は何が欠けていますか?
php - SonataMediaBundle のインストール後のマッピング例外
SonataAdminBundle 内で使用するために SonataMediaBundle をセットアップして使用しようとしています。SMB のドキュメントのすべての手順を読んで実行します。コマンドを実行すると:
デフォルトでは、これによりフォルダーにバンドルが作成app/
されるため、手動でsrc/
フォルダーがあるべきフォルダーに移動します。アプリケーションにアクセスしようとするたびに、次のエラーが発生します。
MappingException: クラス 'Application\Sonata\UserBundle\Entity\User' がチェーン構成された名前空間 Sonata\MediaBundle\Entity に見つかりませんでした
理由はわかりませんが、参照を探してどこでもチェックしましたが、何も見つかりませんでした。これを修正したり、手がかりを教えてくれる人はいますか?
symfony-sonata - SonataMediaBundle のファイル タイプのデフォルト アイコン
SonataMediaBundle を使用していますが、特定のファイル タイプ (pdf、xls、doc など) のアイコンを生成したくありません。デフォルトのアイコン ( など) を使用したい。
私はソナタメディアのドキュメントを読んでいて、次のようなものが必要だと信じていました:
web/uploads/media/media_bundle/images/default_pdf/file.png
また
web/uploads/media/sonatamedia/files/default_pdf/file.png
どちらも機能しません。
<format>
「小さい」または「大きい」を意味するチャンスで、私はこれも試しました:
web/uploads/media/media_bundle/images/default_small/file.png
file.png
これは、小さなアイコンが必要で、ファイル インスタンスにカスタム アイコンがない場合、MIME タイプに関係なく、すべてのファイルに対して表示されることを意味すると想定しました。admin
代わりにdefault
コンテキストとして使用してみました。サイコロはありません。
アイコン src は常に/uploads/media/sonatamedia/files/admin/file.png
- 絶対パスであり、実際には存在しません。
私のアイコンファイルは 45px 幅で、config.yml で設定しました:
ファイルのパーミッションは 644 で、キャッシュはクリアされています。私は何を間違っていますか?
symfony - SonataMediaBundle: ファイル/画像が見つかりません
SonataAdminBundle と Symfony 2.3 で SonataMediaBundle を使用しています。
Sonata Admin インターフェイスから画像をアップロードしようとすると、次のようになります。
- [新規追加] (
app_dev.php/admin/sonata/media/media/create
)をクリックします。 - 「画像」(
app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default
)をクリック - ファイルを参照し、
image.jpg
「作成」をクリックします - これにより、編集ページが表示されます。
Item "image.jpg" has been successfully created.
本当に:
- フォルダー
web\uploads\media\default\0001\01
には、画像ファイルと 3 つの親指があります。 media__media
DBテーブルには、対応する行があります- Firefoxでブラウジングする
web/uploads/media/default/0001/01/
と、自分の画像が表示されます - 対応する行がメディア リストに表示されます (管理パネル内)。
しかし:
- 画像は、メディア リスト (親指の代わりに四角形があります) にも画像編集ページ (
app_dev.php/admin/sonata/media/media/3/edit?provider=sonata.media.provider.image&context=default
)にも表示されません。
ファイルの場合、さらに悪い:
- [新規追加] (
app_dev.php/admin/sonata/media/media/create
)をクリックします。 - 「画像」(
app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default
)をクリック - ファイルを参照し、
document.zip
「作成」をクリックします
これにより、エラー 500: が生成されますThe file "" does not exist
。また、DB に新しい行は作成されません。
解決策の一部
画像の問題については、sonata 管理者が探しているパスが適切ではないことに気付きました。http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg
それ以外のhttp://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg
どうやら、これは config.yml のこの部分によるものです (SonataMedia のドキュメントで定義されています)。
私が置き換えたもの:
そして、それは機能します。しかし、これをハードコードするのは良い考えではないと思います。Sonata Doc でこのように書かれているのには十分な理由があると思いますよね?
私の変更は正しいですか?そうでない場合は、どうすればよいですか?
いずれにしても、ファイルのアップロードの問題は解決しません! この点について何か考えはありますか?
symfony-sonata - Sonata Media Bundle ギャラリーを削除
Sonata Media Bundle をインストールしていますが、バンドルのギャラリー部分は使用していません。
ギャラリーを無効にするにはどうすればよいですか?
私は Symfony 2.3 を使用しており、ドキュメントに従って標準のメディア バンドルをインストールしています。
これまでの解決策:
管理バンドルからこの問題https://github.com/sonata-project/SonataAdminBundle/issues/460show_in_dashboard: false
を見ると、yaml ファイルにタグを追加することで管理者を無効にすることができます。
これを行うには、このフラグを追加する独自のコンパイラを追加するだけです。
コンパイラを作成します: http://symfony.com/doc/current/components/dependency_injection/tags.html
コンパイラをバンドルに追加します: http://symfony.com/doc/2.3/cookbook/service_container/compiler_passes.html
これで完了です。より良い解決策があれば、それについて聞きたいです。
コンパイラの例:
php - SonataMediaBundle の管理統合でラベルが翻訳されない
SonataAdminBundleを既に実装しているプロジェクトにSonataMediaBundleを追加しました。
奇妙な点の 1 つは、そのままでは、フォーム/フィールドのラベルが管理ダッシュボードまたは CRUD コンポーネントで翻訳されていないことです。
これはバンドルによって提供された管理者と私が書いた管理者だったからだと思いましたが、SonataUserBundleも統合されており、それらの管理者はうまく翻訳されています(戦略を想定しています。これsonata.admin.label.strategy.native
によるとデフォルトであり、人間が読めるラベルを生成する必要があります)
問題の図を次に示します。
もう 1 つは、SonataUserBundle を含めることで公開された管理者の隣でさえ、翻訳がまだ機能していないことを示しています。
他に何か見る必要がある場合はお知らせください。
バージョン情報については、ここに私のcomposer.jsonがあります
config.ymlのフレームワーク セクション