Drupal 8 получает пустую переменную $ _GET - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю с Drupal 8, и я пытаюсь получить переменную get с именем id, URL выглядит как http://localhost/drp/listado/editar/2.

это функция в контроллере

public function edit(Request $request){

    $id = $request->query->get('id');
    $conexion = \Drupal::database();
    $query = $conexion->query("Select * from node where nid = ".$id);
    $result = $query->fetchAll();

  return array(
      '#id' => $id,
      '#datos' => $result,
      '#theme' => 'editar',
      '#titulo' => 'Editar'
      );

  }

но я получаю эту ошибку в report / dblogs

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1: Select * from node where nid =;

это custom_controller.routing.yml

custom_controller.editar:
  path: '/listado/editar/{id}'
  defaults:
    _controller: '\Drupal\custom_controller\Controller\ListController::edit'
    _title: 'Edit'
  requirements:
    _permission: 'access_content'

это не получение значения переменной, любая помощьдобро пожаловать, спасибо

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Сначала установите модуль devel и выведите переменную $request.После нажатия на ссылку вы можете получить идентификатор параметра.

0 голосов
/ 14 декабря 2018

Я думаю, что первым параметром, который получает ваш контроллер, является id, вторым параметром является запрос, который является автоматическим.Смотрите здесь https://www.drupal.org/docs/8/api/routing-system/using-parameters-in-routes

Может быть, вы можете распечатать содержимое первого параметра и die(), чтобы проверить, какое значение передается Drupal.

...