Grav-plugin-admin: 未定義のプロパティ:1.8.2のstdClass :: $ image

作成日 2018年05月28日  ·  8コメント  ·  ソース: getgrav/grav-plugin-admin

ページテンプレートに画像をアップロードすると、エラーUndefined property: stdClass::$image発生します。 エラーハンドラは、adminbasecontroller.phpの行722を具体的に参照

            header.image:
                type: file
                label: Screenshot
                limit: 1
                destination: 'self@'
                multiple: false
                style: vertical
                accept:
                  - image/*

エラーに関係なく画像はアップロードされますが、ヘッダーは更新されません...

1.8.1にロールバックすると、今のところ修正されました。

bug

最も参考になるコメント

adminbasecontroller.phpの行722をisset()変更することで、問題を修正できます。

if (isset($obj->header()->{$init_key})) {

全てのコメント8件

これを行わないでください。pagemediaフィールドはすでにページフォルダにアップロードされています。 ファイルフィールドは、他のページ以外のブループリントで使用することを目的としています。

それで、これを青写真的に達成するための正しい方法は何でしょうか?

こっちも一緒。 Grav1.4.5およびAdmin1.8.2への更新以降、画像をアップロードできず、同じエラーが

私の青写真の抜粋は次のとおりです。

[...]
header.images:
  type: file
  label: Images
  random_name: true
  multiple: true
  limit: 2
  destination: 'assets'
  filesize: 10
  accept:
    - image/*
[...]

これはこれまで問題なく機能しました。 更新はそれを壊しました。

重大な変更がある場合は、更新にそれらについて知っておくと便利です。 ベストプラクティスがある場合は、すべてではそれらについて知っているだけではなくのような応答を取得するために素晴らしいことです

これを行わないでください。pagemediaフィールドはすでにページフォルダにアップロードされています。 ファイルフィールドは、他のページ以外のブループリントで使用することを目的としています。

理由についてのポインタなし。 当時のドキュメントに従ってブループリントを作成しましたが、機能しました。 これはバグであるか、文書化されていない重大な変更です。

更新:管理者1.8.1にダウングレードすると、私もこれを解決しました。 これは、これが1.8.2で導入されたバグである可能性が最も高いという私の印象を補強します。

さらに、この設定で1つの投稿を削除すると、 assetsフォルダー内のすべての画像が削除されることがわかりました。 これは、管理インターフェイスの内部動作におけるかなり大きなバグのようであり、今日、私に多くのフラストレーションを引き起こしました。

このフィールドは実際にはページメディアピッカーを置き換えることを意図していないため、これが重大な変更であることに気づきませんでした。 これで、ページメディアピッカーと組み合わせてファイルフィールドを使用している人々のレポートがいくつかあります。調査して解決策を見つけます。 これにつきましては申し訳ございません!

参考までに、推奨されるアプローチは、標準のpagemediaフィールドを使用して画像をページにアップロードし、ファイルピッカーを使用して特定のヘッダー変数用に画像を選択することです。

参考までに、推奨されるアプローチは、標準のpagemediaフィールドを使用して画像をページにアップロードし、ファイルピッカーを使用して特定のヘッダー変数用に画像を選択することです。

この推奨されるアプローチは、直感に反していると私は思います。 ファイル/画像のアップロードとフィールドへの割り当ては、2つではなく1つのアクションである必要があります。 2つのステップでそれを行うようにユーザーに教えることはイライラすることであり、必要ではないはずです。

いずれにせよ、それを調べてくれてありがとう。

adminbasecontroller.phpの行722をisset()変更することで、問題を修正できます。

if (isset($obj->header()->{$init_key})) {

この問題は管理者1.8.3で修正されました

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

fourroses666 picture fourroses666  ·  4コメント

wildafrica picture wildafrica  ·  4コメント

danzinger picture danzinger  ·  5コメント

jundiya picture jundiya  ·  4コメント

Genenenenaam picture Genenenenaam  ·  5コメント