1

これは PHP の質問と同じくらい drupal の質問だと思います。

次の print_r($node) 配列があります

stdClass Object
(
    [vid] => 4
...
    [field_imgleft] => Array
            (
            [und] => Array
                (
                    [0] => Array
                        (
                            [value] => defaultimgleft
                            [format] => 
                            [safe_value] => defaultimgleft
                        )
                )
        )
)

field_imgleft は、ノードのコンテンツ タイプのフィールドです。値は 1 つしかないため、[0] がその配列の最大値です。[value] の値を変数に戻そうとしていますが、node-> メソッドや node[...] などでうまくいきません。

4

2 に答える 2

5

エンティティからフィールド値を抽出する組み込みの API 関数があります: field_get_items().

次のように使用できます。

$items = field_get_items('node', $node, 'field_imgleft');

$first_item = array_shift($items);

$value = $first_item['value'];

このメソッドは、フィールドの変換を処理するため、配列に直接アクセスするよりも推奨されます...もう使用について心配する必要はありません'und'

于 2012-06-19T22:00:38.003 に答える
2

改善された print_r(); として dpm() 関数を利用できるように、 Devel モジュールを使用することをお勧めします。

dpm( $node->field_imgleft['und'][0]['value'] );
于 2012-06-19T21:33:35.247 に答える