2011-09-13 41 views
7

我已經得到了這個菜單鉤子,我通過它向函數發送兩個參數。如何獲取通過drupal發送的多個參數hook_menu

但是在函數中我只接收第一個參數。

是否有人知道如何使用Drupal菜單系統發送和獲取多個參數?

function drupal_menu(){ 
    $items = array(); 
    $items['drupal/%/%'] = array(
     'title' => t('Welcome to the Hello World Module'), 
     'page callback' => 'drupal_page', 
     'page arguments' => array(1,2), 
     'access arguments' => array('access content'), 
     'type' => MENU_CALLBACK, 
    ); 
    return $items; 
} 


function drupal_page($arg1, $arg2) {  
    return drupal_json(array('mess1'=>$arg1,'mess2'=>$arg2)); 
} 
+0

我有同樣的問題:清空緩存後,它的工作。 – Parthi04

回答

8

您已經完全按照正確的方式執行操作,如果它不工作,請嘗試刷新緩存。可能在添加第二個參數後它們還沒有被清除,並且Drupal從hook_menu()緩存項目返回,因此不必在每個頁面上調用它們。

+0

感謝您的諮詢。但清理緩存並沒有幫助我。有趣的是我發現你需要告訴drupal核心系統你已經對hook_menu進行了修改,所以drupal可以跟蹤路徑。我所做的第一次卸載並重新安裝了自定義模塊(通過這樣做,現在drupal知道我在做什麼),它爲我工作。 –

1

您是在正確的道路反正...如果它不爲你工作,請嘗試以下

function drupal_page($arg1, $arg2) { 
    $arg1_new = arg(1) ; 
    $arg2_new = arg(2) ; 
    return drupal_json(array(
    'mess1'=>$arg1_new, 
    'mess2'=>$arg2_new 
    ) 
); 
} 
+0

卸載並重新安裝自定義模塊後,我的代碼開始工作。我正在嘗試你的代碼。感謝您的意見。 –