أرغب في إضافة بعض الوظائف المخصصة إلى knex والتي يجب أن أستخدمها طوال الوقت ولكني أجد صعوبة في جعلها تعمل.
هم انهم:
knex.selectOne
knex.selectZeroOrOne
بدلاً من القيام أولاً ، لا يطبق selectOne حدًا وبدلاً من ذلك يرمي خطأ إذا استعاد أكثر من سجل واحد. يسمح هذا للمؤلف بالتعرف على أخطاء معينة في وقت مبكر.
لقد بدأت بـ:
knex.client.QueryBuilder.prototype.selectOne = function (columns) {
const args = new Array(arguments.length);
for (let i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
this.select.apply(this, args);
this._method = 'first';
//this.limit(1);
return this;
}
ولكن من الواضح أن التحقق من عدد السجلات التي يتم إرجاعها يجب أن يتم بعد عودة النتائج
هل ستتمكن من توجيهي في الاتجاه الصحيح؟
فقط لمعلوماتك لن يعمل هذا الرمز في 0.12 ، ستحتاج إلى طلب knex/lib/query/builder
مباشرة لتعديل هذا النموذج الأولي.
بالنسبة إلى الإصدار 1.0 ، سأخطط لتحديد طريقة قياسية لتخصيص سلسلة منشئ الاستعلامات كما تحاول القيام به أعلاه ، ومع إضافة "الخطافات" ، ستتمكن من إعداد تحويلات ما بعد النتيجة بسهولة.
tgriesser لقد انتظرت هذه الميزة لفترة وأبدأ في تعديل النموذج الأولي QueryBuilder
. سيكون من الرائع أن يكون لديك واجهة لتوسيع منشئ الاستعلام.
👍
tgriesser - إلى أي مدى نحن بعيدون عن 1.0؟
التعليق الأكثر فائدة
tgriesser لقد انتظرت هذه الميزة لفترة وأبدأ في تعديل النموذج الأولي
QueryBuilder
. سيكون من الرائع أن يكون لديك واجهة لتوسيع منشئ الاستعلام.👍