Ich versuche, die where-Bedingung einer Ansichtsabfrage zu ändern. Bis jetzt war es mir gelungen, "order by" zu ändern, aber ich habe keine Ahnung, wie ich den where-Zustand ändern soll . Ich möchte das search_term überprüfen und wenn es in Großbuchstaben geschrieben ist, in Kleinbuchstaben umwandeln, damit die Abfrage es finden kann. Außerdem gibt es einige Sonderzeichen in meiner Sprache (Persisch), die ich ersetzen muss, bevor die Abfrage ausgeführt wird. Kann mir jemand helfen, wo ich anfangen soll oder welche Hooks oder Views-Handler ich verwenden soll?
<?php
/**
* Implementation of hook_views_query_alter
* @param type $view
* @param type $query
*/
function nashreneydev_views_query_alter(&$view, &$query) {
//krumo($query);
//krumo($view);
if ($view->name == 'custom_search') {
$search_term = $view->exposed_raw_input['combine'];
**//$query->where[0]['conditions'][0]['field']= "?????";**
$view->query->orderby[1]['field'] = "CASE node_type WHEN 'product_display' THEN 1 ELSE 2 END";
$view->query->orderby[1]['direction'] = "ASC";
$view->query->orderby[0]['field'] = "CASE node_title WHEN '".$search_term."' THEN 1 ELSE 2 END";
$view->query->orderby[0]['direction'] = "ASC";
//krumo($view->query->orderby);
}
}
?>
Das Entwicklungsergebnis für den aktuellen Zustand ist wie folgt. : views_combine entspricht% s%.
CONCAT_WS ('', node.title, '', field_data_body.body_value, '', field_data_field_author.field_author_target_id, '', field_data_field_translator.field_translator_target_id, '', field_data_field_book_tags.field_t_
@inheritdoc
Antworten:
Sie können auf den Inhalt einer where-Bedingung zugreifen, indem Sie deren Wert ändern:
Ziemlich ähnlich wie bei orderby. Sie können auch benutzerdefinierte Where-Bedingungen hinzufügen ( https://api.drupal.org/api/views/plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7 und https://api.drupal.org/api/). Ansichten / Plugins% 21views_plugin_query_default.inc / function / views_plugin_query_default% 3A% 3Aadd_where_expression / 7 )
quelle
Fügen Sie add_where hinzu, um eine neue where-Klausel hinzuzufügen, die Sie verwenden können
Zum Beispiel :
quelle
quelle
Versuche dies,
quelle
Sie können genau wie verwenden
quelle