मैंने अपने कस्टम मॉड्यूल में ड्रुपल 8 के लिए पाठ-क्षेत्र में एक स्वत: पूर्णता लागू करने का प्रयास किया
मैं जो कुछ भी चाहता था उसे स्वतः शीर्षक के माध्यम से टाइप करने और प्रदर्शित करने की संभावना थी, इसलिए मैंने फ़ोल्डर निर्देशिका में DefaultController.php में एक वर्ग के भीतर एक सार्वजनिक फ़ंक्शन को स्वत: पूर्ण घोषित किया -> mymodule / src / Controller / DefaultController.php
<?php
namespace Drupal\mymodule\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\JsonResponse;
class DefaultController extends ControllerBase
{
public function autocomplete($string)
{
$matches = array();
$db = \Drupal::database();
$result = $db->select('node_field_data', 'n')
->fields('n', array('title', 'nid'))
->condition('title', '%'.db_like($string).'%', 'LIKE')
->addTag('node_access')
->execute();
foreach ($result as $row) {
$matches[$row->nid] = check_plain($row->title);
}
return new JsonResponse($matches);
}
}
फिर फ़ोल्डर निर्देशिका में एक EditForm.php बनाया -> mymodule / src / Form / EditForm.php
<?php
namespace Drupal\mymodule\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class EditForm extends FormBase
{
public function getFormId()
{
return 'mymodule_edit_form';
}
public function buildForm(array $form, FormStateInterface $form_state)
{
$form = array();
$form['input_fields']['nid'] = array(
'#type' => 'textfield',
'#title' => t('Name of the referenced node'),
'#autocomplete_route_name' => 'mymodule.autocomplete',
'#description' => t('Node Add/Edit type block'),
'#default' => ($form_state->isValueEmpty('nid')) ? null : ($form_state->getValue('nid')),
'#required' => true,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Create'),
);
return $form;
}
}
mymodule.rout.yml भी बनाया
mymodule.autocomplete:
path: '/mymodule/autocomplete'
defaults:
_controller: '\Drupal\mymodule\Controller\DefaultController::autocomplete'
requirements:
_permission: 'access content'
अभी भी स्वत: पूर्ण कार्यक्षमता लागू नहीं हो रही है? क्या कोई मुझे बता सकता है कि मैं क्या याद कर रहा हूँ ??