web-dev-qa-db-ja.com

system_settings_form()の「drupal_attributes()に渡される引数1は配列でなければならない」エラーを解決するにはどうすればよいですか?

私は通常、このような特定の質問を投稿したり、特定の問題について助けを求めたりはしませんが、私は時間を浪費している私のロープの終わりにいます...

以下に示すように、単純なD7モジュールがあります。ページをロードすると(メニュー項目が正確に目的の場所にある場合)、次のエラーが発生します。

回復可能な致命的なエラー:drupal_attributes()に渡される引数1は、nullが指定された配列で、3106行目の/path/to/site/public_html/includes/form.incで呼び出され、drupal_attributes()で定義されている必要があります(/ pathの2257行目) /to/site/public_html/includes/common.inc)。

ご覧のとおり、フォーム宣言自体はveryシンプルであり、ページがロードされるまですべてが非常に鋭敏に実行されます。

私はhaveを見ました:form.incの3106で、$要素は入力されていますが、属性は存在しません-何が欠けていますか?

<?php
/**
 * Implements hook_menu().
 */
function attach_images_menu() {

    $items['admin/structure/types/manage/%/attach/images'] = array(
        'title' => 'Attach: Images',
        'page callback' => 'attach_images_settings',
        'access arguments' => array('access administration pages'),
        'weight' => '10',
        'type' => MENU_LOCAL_TASK,
    );

    return $items;

}

function attach_images_settings() {
    //$content_type = arg(4);
    $form['attach_images_amount_'] = array(
         '#type'   => 'textfield',
         '#title'  => 'Amount',
         '#default_value' => variable_get('attach_images_amount_',1),
    );
  return system_settings_form($form);
}

?>
6
electblake
_$items['admin/structure/types/manage/%/attach/images'] = array(
    'title' => 'Attach: Images',
    'page callback' => 'attach_images_settings',
    'access arguments' => array('access administration pages'),
    'weight' => '10',
    'type' => MENU_LOCAL_TASK,
);
_

これは'page callback' => 'drupal_get_form', 'page arguments' => array('attach_images_settings')である必要があります。 (変更を行った後、キャッシュを消去することを忘れないでください)

また、Drupal 7のフォームコールバックには、必須の$ form引数があります。

12
Damien Tournoud

ページコールバックで 'drupal_get_form'を指定することは、独自のカスタムのスクラッチページコールバックを実装し、itでdrupal_get_form()を呼び出すことと同じであることを覚えておく価値があります。

3
Eaton