Drupal 8:将节点 ID 从字符串转换为整数
Drupal 8: convert node id from string to integer
根据条件检索节点:
$query = \Drupal::entityQuery('node')
->condition('type', 'my_content_type')
->condition('title', 'my node title');
$nid = $query->execute();
$nid 的结果是正确的节点 ID,但格式是字符串,(es: "123")
当我想通过它的ID加载节点时,我写:
$node_id = Node::load($nid);
这样做,我得到的结果是 NULL,因为变量 $nid 保存的是一个字符串(不是整数)。
如果我这样写代码:
$node_id = Node::load(123);
我加载了节点。
如何将变量字符串 ($nid) 转换为整数?
我试过了:
$nid_int = (int) $nid;
$node_id = Node::load($nid_int);
我也试过:
$nid_int = intval($nid);
$node_id = Node::load($nid_int);
但我总是得到结果 NULL
感谢您的帮助
可以试试:-
$nid_string = $nid->__toString();
$node_id = Node::load((int) $nid_string);
你不能直接使用 Node::load($nid);,因为 $query->execute() return 类似 ['vid' => "nid"].
的数组
$query = \Drupal::entityQuery('node')
->condition('type', 'my_content_type')
->condition('title', 'my node title');
$nids = $query->execute();
$nid = (int)array_shift($nids);
根据条件检索节点:
$query = \Drupal::entityQuery('node')
->condition('type', 'my_content_type')
->condition('title', 'my node title');
$nid = $query->execute();
$nid 的结果是正确的节点 ID,但格式是字符串,(es: "123")
当我想通过它的ID加载节点时,我写:
$node_id = Node::load($nid);
这样做,我得到的结果是 NULL,因为变量 $nid 保存的是一个字符串(不是整数)。 如果我这样写代码:
$node_id = Node::load(123);
我加载了节点。
如何将变量字符串 ($nid) 转换为整数? 我试过了:
$nid_int = (int) $nid;
$node_id = Node::load($nid_int);
我也试过:
$nid_int = intval($nid);
$node_id = Node::load($nid_int);
但我总是得到结果 NULL
感谢您的帮助
可以试试:-
$nid_string = $nid->__toString();
$node_id = Node::load((int) $nid_string);
你不能直接使用 Node::load($nid);,因为 $query->execute() return 类似 ['vid' => "nid"].
的数组$query = \Drupal::entityQuery('node')
->condition('type', 'my_content_type')
->condition('title', 'my node title');
$nids = $query->execute();
$nid = (int)array_shift($nids);