Création de requêtes dynamiques « andWhere » dans TypeORM
P粉334721359
2023-08-03 14:25:08
<p>J'essaie d'ajouter dynamiquement une clause Where à une requête pour filtrer un tableau HTML. J'envoie un objet à mon API qui contient des paires clé-valeur filtrées. Cela ressemble à ceci : </p>
<pre class="brush:php;toolbar:false;">{Emplacement : 'Seattle', Statut : 'Actif'}</pre>
<p> Voici comment ajouter chaque filtre à la requête : </p>
<pre class="brush:php;toolbar:false;">const query = this.tableRepository.createQueryBuilder('myTable')
.where('maTable.id = :id', {table_id})
varind=1
pour (laisser la clé dans myObj){
var nomvar = 'searchVal' + String(ind)
const searchVal = monObj[clé]
query.andWhere(`row_value.row_data->> '${key}' ILIKE :${varname}`, {varname: `%{searchVal%`})
}</pré>
<p>L'erreur que je continue à recevoir est l'erreur suivante : ERROR [ExceptionsHandler] erreur de syntaxe à ou près de : : QueryFailedError : erreur de syntaxe à ou près de : :. Je suis sûr que l'erreur est déclenchée par le {varname: '%{searchVal}%'} à la fin, mais je ne sais pas comment le modifier. </p>
C'est bon, j'ai compris – j'étais un peu idiot tout à l'heure.
J'ai juste besoin de changer le dernier {varname: '%{searchVal}%'} en {[varname]: '%{searchVal}%'}.