У меня есть список типов узлов рецептов, и когда я посещаю один рецепт <, я хочу показать кнопку, на которой есть ссылка на следующий идентификатор рецепта. Оттуда я смогу найти псевдоним узла и подготовить URL-адрес для размещения в файле ветки. </p>
В моем логе c я запросил базу данных и получил список всех идентификаторов узлов, которые относятся к типу recipe, а код языка соответствует текущему языку страницы.
$current_lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
$current_node_id = \Drupal::routeMatch()->getParameter('node'); // get the ID of the current page being visited
$nids = \Drupal::entityQuery('node')->condition('type','recipes')->execute();
$recipes_id = \Drupal\node\Entity\Node::loadMultiple($nids);
$recipe_keys = array_keys($recipes_id); // creates an array with all recipes page ID
$database = \Drupal::database();
$query = $database->query("SELECT nid FROM node WHERE type = 'recipes' AND langcode = '" . $current_lang . "'");
$results = $query->fetchAll();
Пока что я получаю его на работу.
$language_ids = [];
for($i = 0; $i < count($results); $i++)
array_push($language_ids, $results[$i]->nid);
Если я изменю dump $ language_ids, то я см. список всех идентификаторов. Теперь я хочу провести l oop через массив ($ language_ids) и найти идентификатор, равный моему текущему идентификатору страницы / узла. После обнаружения этого в $ language_ids я хочу получить доступ к следующему идентификатору, если он есть. В отсутствие следующего элемента в массиве я хочу просто получить доступ к значению в первой позиции.
Ниже приведены остальные мои логи c:
for( $j = 0; $j < count($language_ids); $j++ )
if( $language_ids[$j] = $current_node_id )
if(end($language_ids[$j])){
$variables['next_node'] = $language_ids[0];
}
else {
$next_node_id = $language_ids[4];
$variables['next_node'] = $language_ids[$j + 1];
}
Если я var_dump $ next_node, я получаю нулевое значение. Кроме того, если я заменю это:
$variables['next_node'] = $language_ids[$j + 1];
для этого:
$variables['next_node'] = $language_ids[1];
я получу следующее:
Как я могу получить следующее значение моих $ language_ids?