【问题标题】:How to get multiple parameters sent via drupal hook_menu如何获取通过drupal hook_menu发送的多个参数
【发布时间】:2011-09-13 15:52:42
【问题描述】:

我在下面有这个菜单挂钩,我通过它向函数发送两个参数。

但在函数中我只接收第一个参数。

有人知道如何使用 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));
}

【问题讨论】:

  • 我遇到了同样的问题,刷新缓存后,它工作了。

标签: php drupal drupal-6 drupal-7


【解决方案1】:

您已经以正确的方式进行操作,如果它不起作用,请尝试刷新您的缓存。可能自从您添加第二个参数后它们还没有被清除,并且 Drupal 缓存从 hook_menu() 返回的项目,因此不必在每个页面上调用它。

【讨论】:

  • 感谢您的建议。但是清除缓存对我没有帮助。有趣的是,我发现您需要告诉 drupal 核心系统您在 hook_menu 中进行了更改,以便 drupal 可以跟踪路径。我首先卸载并重新安装了自定义模块(通过这样做现在drupal知道我在做什么)它对我有用。
【解决方案2】:

无论如何,你是在正确的方式......如果它不适合你,那么试试下面的

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

【讨论】:

  • 卸载并重新安装自定义模块后,我的代码开始工作。我正在尝试尝试您的代码。感谢您的建议。
猜你喜欢
  • 2012-06-11
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多