function MigrateMessageController::addFilterToQuery
Adds a filter to the query for migrate message administration.
This method retrieves the session-based filters from the request and applies them to the provided query object. If no filters are present, the query is left unchanged.
Parameters
\Symfony\Component\HttpFoundation\Request $request: The request.
\Drupal\Core\Database\Query\SelectInterface $query: The database query.
1 call to MigrateMessageController::addFilterToQuery()
- MigrateMessageController::details in core/
modules/ migrate/ src/ Controller/ MigrateMessageController.php - Displays a listing of migration messages for the given migration ID.
File
-
core/
modules/ migrate/ src/ Controller/ MigrateMessageController.php, line 250
Class
- MigrateMessageController
- Provides controller methods for the Message form.
Namespace
Drupal\migrate\ControllerCode
protected function addFilterToQuery(Request $request, SelectInterface $query) : void {
$session_filters = $request->getSession()
->get('migration_messages_overview_filter', []);
if (empty($session_filters)) {
return;
}
// Build the condition.
foreach ($session_filters as $filter) {
if (empty($filter['value'])) {
continue;
}
switch ($filter['type']) {
case 'array':
$values = array_values($filter['value']);
if ($filter['field'] === 'msg.level') {
$values = array_map(fn($x) => (int) $x, $values);
}
$query->condition($filter['field'], $values, 'IN');
break;
case 'string':
$query->condition($filter['field'], "%{$filter['value']}%", 'LIKE');
break;
default:
$query->condition($filter['field'], $filter['value']);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.