J'essaie de modifier la condition where d'une requête de vues. jusqu'à présent, j'ai réussi à modifier la "commande par" , mais je ne sais pas comment modifier la condition where . Je veux vérifier le search_term et s'il était en majuscule, le transformer en minuscule pour que la requête puisse le trouver. il y a aussi quelques caractères spéciaux dans ma langue (persan) dont j'ai besoin pour les remplacer avant l'exécution de la requête. n'importe qui peut m'aider par où commencer ou quels crochets ou vues_handlers utiliser?
<?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);
}
}
?>
le résultat de développement pour où la condition est comme suit en ce moment. : views_combine est égal à% 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.___tags._book_t_s._book_t_s._book_t_s._tag_l_t_s_tata_tata
@inheritdoc
Réponses:
Vous pouvez accéder au contenu d'une condition where en modifiant sa valeur:
Assez similaire à ce que vous avez fait avec orderby. Vous pouvez également ajouter des conditions Where personnalisées ( https://api.drupal.org/api/views/plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7 et https://api.drupal.org/api/ views / plugins% 21views_plugin_query_default.inc / function / views_plugin_query_default% 3A% 3Aadd_where_expression / 7 )
la source
Pour ajouter une nouvelle clause where que vous pouvez utiliser, add_where
Par exemple :
la source
la source
Essaye ça,
la source
Vous pouvez utiliser comme
la source