4

私のモジュールファイルで、新しいメニュー項目を作成しました

function xmlproject_menu() 
{
  $items = array();

  //more items here

  $items['system/xml/cfa/initialize/%/%/%/%/%'] = array(
    'page callback' => 'xmlproject_initialize_cf',
    'page arguments' => array(4, 5, 6, 7, 8,),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );

  return $items;
}

function xmlproject_initialize_cf($session_id, $cart_id, $pid, $rid, $partner_id)
{
  //some code here
}

admin/build/modules、devel/menu/reset、および admin/settings/performance にアクセスしてキャッシュをクリアしようとしました。データベース (menu_router) にメニュー項目が表示されます。 ここに画像の説明を入力

http://example.com/system/xml/cfa/initialize/1/2/3/4/5にアクセスすると、「ページが見つかりません」というメッセージが表示されます。

4

3 に答える 3

1

あなたのコードに問題はないようです。不思議なことに、配列の最後の要素を「空」のままにしている理由(8番の後のコンマ)

'page arguments' => array(4, 5, 6, 7, 8,),

また、配列に追加の空の項目があります (MENU_CALLBACK の後の余分なコンマ)

'type' => MENU_CALLBACK,
于 2015-08-25T17:09:25.417 に答える
1

ルーター パスのパーツ数を含むデータベースの列でわかるように、 7 (利用可能な最大パーツnumber_part) に設定されていますが、メニュー コールバックのパーツは 9 です。 メニュー項目のサイズを小さくするだけで準備完了です。例:Page not found

$items['initialize/%/%/%/%/%'] = array(
    'page callback' => 'xmlproject_initialize_cf',
    'page arguments' => array(4, 5, 6, 7, 8),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
 );
于 2015-08-26T11:24:30.023 に答える