سؤال

أقوم بترحيل تطبيق Codeigniter إلى Kohana ، وأود الاستفادة من وحدة Auth Kohana إن أمكن. لقد نظرت إلى مخطط قاعدة البيانات "القياسي" الذي تستخدمه وحدة Auth ، لكن لدي بالفعل جداول وأعمدة تحتوي على المعلومات ذات الصلة المسمى وتنظيمها بشكل مختلف.

هل هناك طريقة للتغيير حيث تبحث عن اسم المستخدم/كلمة المرور/البريد الإلكتروني وما إلى ذلك. ربما عن طريق التمديد model_user و/أو kohana_auth_orm؟ أرغب في استخدام ORM حيثما أمكن ذلك.

أرغب في تغيير أسماء الجدول وأسماء الأعمدة لكل عنصر ، حتى أتمكن من تخصيصه بالكامل.

إذا أجبرت على استخدام المخطط القياسي ، فسيقلل ذلك من مرونة طلبي ...

لدي جدول واحد يسمى "الكيان" حيث يتم تخزين التفاصيل الأساسية لـ (مثل المستخدمين والأحداث والمقالات). لا يحتوي هذا الجدول على أعمدة لاسم المستخدم/كلمة المرور/البريد الإلكتروني لأنها لن تنطبق على الأحداث أو المقالات. يتم تخزين قيم اسم المستخدم وما إلى ذلك في جدول بحث ، والذي يقوم بتخطيط البيانات بالطريقة التالية (مقطوعة للإيجاز).

Table: entity
    Columns: entity_id

Table: map_entity_attribute
    Columns: entity_id, attribute_id, value

Table: attribute
    Columns: attribute_id, name

مثال بيانات:

entity.entity_id = 99;

map_entity_attribute.entity_id = 99;
map_entity_attribute.attribute_id = 1;
map_entity_attribute.value = 'ThisIsMyUsername';

attribute.attribute_id = 1;
attribute.name = 'Username';

آمل أن أكون قد شرحت هذا بوضوح لأنني أدرك أن مخطط قاعدة البيانات خارج عن المألوف.

آمل أن يتمكن شخص ما من توجيهني في الاتجاه الصحيح!

شكرا جزيلا ، ستيف

هل كانت مفيدة؟

المحلول

تم تصميم Kohana بطريقة يمكنك تجاوز كل فصل تقريبًا في مجلد "التطبيق" الخاص بك ، وسوف يكون له الأسبقية على الفصول المحددة في الوحدات النمطية:http://kohanaframework.org/3.3/guide/kohana/files

خاصة بحالتك ، يجب عليك تجاوز (لا تمتد) Model_user. للقيام بذلك ، تحتاج إلى وضع اسم ملف user.php في التطبيق/ الطراز/ المجلد. من المحتمل أن تمدد فئة Model_auth_user.

من المحتمل أن تضطر إلى إعادة كتابة بعض الفصول الدراسية ولكن على الأقل يجب أن يكون بعضها قابلاً للاستخدام لك كما هو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top