You are here

19 向加载函数传递额外的参数

admin 的头像
Submitted by admin on 星期二, 2015-06-02 03:05

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

如果需要向加载函数传递额外的参数,那么可以使用load arguments键。下面是来自节点模块的例子:一个用来查看节点修订本的菜单项。在这里需要向加载函数,也就是node_load(),传递节点ID和修订本的ID。

 

  $items['node/%node/revisions/%/view'] = array(

    'title' => 'Revisions',

    'load arguments' => array(3),

    'page callback' => 'node_show',

    'page arguments' => array(1, TRUE),

    'access callback' => '_node_revision_access',

    'access arguments' => array(1),

  );

菜单项为load arguments键指定了array(3)。这意味着,除了节点ID通配符的值会自动传递给加载函数以外,还会向加载函数传递一个额外的参数。因为array(3)里面有个元素;我们在“使用通配符的值”一节中已经讲过,这意味着将会使用路径中的部分3。当路径node/12/revisions/29/view被访问时,由于这里定义了load arguments键,这就意味着将会调用node_load('12', '29'),而不是node_load('12')了。

 

当页面回调运行时,加载函数会将'12'替换为加载了的节点对象,所以页面回调将会是node_show($node, TRUE)

 


Drupal版本: