誰かが私が間違ったことを助けてくれますか?サーバーは内部サーバーエラー500を返します。コントローラーを取得できません。誰が私のミスはどこにあるのか説明できますか?ルーティングオートコンプリートパスにあると思いますが、わかりません。それはどうすれば私はそれを修正することができますか? はどうもありがとうございました、みんなDrupal 8カスタムオートコンプリートエラー500
マイフォームのオートコンプリートフォーム要素:
$form['field_father'] = array(
'#title' => t('Father'),
'#type' => 'textfield',
'#autocomplete_route_name' => 'cows.autocomplete',
'#autocomplete_route_parameters' => array(),
);
モジュールルーティングファイル:
コントローラコード:
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 as $row) {
$matches[] = ['value' => $row->entity_id, 'label' => $row->field_name_value];
}
return new JsonResponse($matches);
}
}
は、非常にありがとう多く
名前空間を使用するsymfony \ Component \ HttpFoundation \ Request;あなたのコントローラファイルに。 – vishwa