Drupal 8 custom autocomplete error 500 -


can me wrong did? server returns internal server error 500. looks not able controller. can explain me mistake? think in routing autocomplete path not sure. if how can fix it? thank much, guys

my form autocomplete form element:

$form['field_father'] = array(         '#title' => t('father'),         '#type' => 'textfield',         '#autocomplete_route_name' => 'cows.autocomplete',         '#autocomplete_route_parameters' => array(),       ); 

the module routing file:

cows.form:  path: '/cows/add'  defaults:    _title: 'add cow'    _form: '\drupal\cows\form\cowsform'  requirements:    _permission: 'access content'  cows.autocomplete:   path: '/cows/autocomplete'   defaults:     _controller: '\drupal\cows\controller\cowscontroller::autocomplete'   requirements:     _permission: 'access content' 

the controller code:

namespace drupal\cows\controller;  use drupal\core\controller\controllerbase; use symfony\component\httpfoundation\jsonresponse;   class cowscontroller extends controllerbase {     public function autocomplete(request $request)     {       $matches = [];       $string = $request->query->get('q');        $query = \drupal::database()->select('node__field_name', 'fn');       $query->fields('fn', ['field_name_value', 'entity_id']);       $query->addfield('fg', 'field_gender_value');       $query->join('node__field_gender', 'fg', 'fg.entity_id = fn.entity_id ');       $query->condition('fn.field_name_value', '%' . $string . '%', 'like');       $query->condition('fg.field_gender_value', array('bull','ox'), 'in');       $result = $query->execute();        foreach ($result $row) {         $matches[] = ['value' => $row->entity_id, 'label' => $row->field_name_value];       }        return new jsonresponse($matches);     } } 

thank much

use namespace support request $request.

namespace drupal\cows\controller;  use drupal\core\controller\controllerbase; use symfony\component\httpfoundation\jsonresponse; /****this newly added****/ use symfony\component\httpfoundation\request;  class cowscontroller extends controllerbase {     public function autocomplete(request $request)     {       $matches = [];       $string = $request->query->get('q');        $query = \drupal::database()->select('node__field_name', 'fn');       $query->fields('fn', ['field_name_value', 'entity_id']);       $query->addfield('fg', 'field_gender_value');       $query->join('node__field_gender', 'fg', 'fg.entity_id = fn.entity_id ');       $query->condition('fn.field_name_value', '%' . $string . '%', 'like');       $query->condition('fg.field_gender_value', array('bull','ox'), 'in');       $result = $query->execute();        foreach ($result $row) {         $matches[] = ['value' => $row->entity_id, 'label' => $row->field_name_value];       }        return new jsonresponse($matches);     } } 

Comments

Popular posts from this blog

html - How to custom Bootstrap grid height? -

javascript - pass values from mssql to views in node -

javascript - Understanding ExtJS Framework Syntax -