私は2つの公開されたフィルターを持つビューを持っています-両方の分類基準参照、選択します。最初からのユーザー選択に基づいて、2番目のフィルターのオプションを制限したい。ビューでajaxを有効化/無効化してテスト-違いはありません。ブロック内の公開フォームでテスト-違いはありません。
エラーメッセージはターゲットフィルターを置き換えます:"回復不能なエラーが発生しました。アップロードされたファイルは、このサーバーがサポートする最大ファイルサイズ(60 MB)を超えている可能性があります。"
フォームに公開されたフィルターで標準のフォーム変更とajaxを使用すると、フィルター処理でエラーが発生します。これはカスタムフォームでは正常に機能しますが、ビューに公開されたフィルターでは機能しません。
<?php
use Drupal\Core\Form\FormStateInterface;
function mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'views_exposed_form') {
if ($form['#id'] == 'views-exposed-form-articles-page-1') {
//kint($form);
//kint($form_state);
//
$form['field_tags2_target_id']['#prefix'] = '<div id="tags2-replace">';
$form['field_tags2_target_id']['#suffix'] = '</div>';
$form['field_tags_target_id']['#ajax'] = [
'callback' => 'tags_ajax_callback',
'wrapper' => 'tags2-replace'
];
}
}
}
function tags_ajax_callback($form, FormStateInterface $form_state) {
// remove test2 1 (tid 3) from Tags2 options
unset($form['field_tags2_target_id']['#options'][3]);
$response = new AjaxResponse();
$response->addCommand(new ReplaceCommand(
'#tags2-replace',
$form['field_tags2_target_id']
));
return $response;
//return $form['field_tags2_target_id'];
}
これを機能させるには?
このパッチはこの問題に関連しています https://www.drupal.org/files/issues/2019-08-01/2842525-56.patch 。特にcore/modules/views/src/ViewExecutable.phpのセクションを参照してください。FormBuilderの部分はすでにコミットされていますが、残りは待機しています。