Mencipta pertanyaan 'danDi Mana' dinamik dalam TypeORM
P粉334721359
2023-08-03 14:25:08
<p>Saya cuba menambah klausa where secara dinamik pada pertanyaan untuk menapis jadual HTML. Saya menghantar objek ke API saya yang mengandungi pasangan nilai kunci yang ditapis. Ia kelihatan seperti ini: </p>
<pre class="brush:php;toolbar:false;">{Lokasi: 'Seattle', Status: 'Active'}</pre>
<p> Begini cara saya menambah setiap penapis pada pertanyaan: </p>
<pre class="brush:php;toolbar:false;">const query = this.tableRepository.createQueryBuilder('myTable')
.where('myTable.id = :id', {table_id})
varind=1
untuk (biar masukkan myObj){
var varname = 'searchVal' + String(ind)
const searchVal = myObj[key]
query.andWhere(`row_value.row_data->> '${key}' ILIKE :${varname}`, {varname: `%{searchVal%`})
}</pre>
<p>Ralat yang terus saya dapat ialah ralat berikut: ralat sintaks ERROR [ExceptionsHandler] pada atau berhampiran ":" QueryFailedError: ralat sintaks pada atau berhampiran ":". Saya pasti ralat itu dicetuskan oleh {varname: '%{searchVal}%'} pada penghujungnya, tetapi saya tidak tahu cara menukarnya. </p>
Tidak mengapa, saya faham – saya agak bodoh tadi.
Saya hanya perlu menukar {varname: '%{searchVal}%'} terakhir kepada {[varname]: '%{searchVal}%'}.