0

PHP エントリ クエリでアセット フィールドを返す方法を見つけようとしています。また、オブジェクトを返すときに「カスタム フィールド」を返す方法を学ぶことができれば、それも素晴らしいことです! 現在、ほとんどの「カスタムフィールド」にアクセスするために asArray() を指定する必要があります

例として: 価格のハンドル (数値フィールド) を持つカスタム フィールドと、画像のハンドルを持つ別のカスタム フィールド (資産フィールド) を持つ車両エントリがあります。asArray() パラメータを指定せずにクエリを実行すると、結果に含まれるカスタム フィールドが見つかりません。しかし、asArray() を指定すると、イメージ フィールドを除いてすべて存在します。これは、それがアセット フィールドであるか、イメージのコレクションである可能性があるためでしょうか? エントリに関連付けられたすべてのフィールドがクエリで返されるようにするにはどうすればよいですか?

クエリと対応する結果の例を次に示します。

asArray() を使用しないPHP クエリ:

$entry_query = Entry::find()
->section('inventory')
->all();

戻り値: ここに画像の説明を入力

asArray() を使用したPHP クエリの結果:

$entry_query = Entry::find()
->section('inventory')
->asArray();

戻り値: ここに画像の説明を入力

ただし、結果セットを配列にするように指定しても、「画像」フィールドを含める方法がわかりません。

ドキュメントや同じことをしている人の例から答えを見つけるのに苦労しています。私が見つけたすべての例は、小枝のテンプレート側のものです。

ありがとう!

4

2 に答える 2

0

Yii には、これを単純化する配列ヘルパー関数があります。このスタック交換エントリを参照してください。これは、説明したものと本質的に同じアプローチですが、より単純です (クエリが少なく、コード行が少ない)。

于 2020-11-16T14:25:34.360 に答える