توليد نموذج Zend مع بيانات ديناميكية؟
-
26-09-2019 - |
سؤال
أحتاج إلى الوصول إلى جلستي وبناءً على خاصية الجلسة التي أحتاجها للاستيلاء على الأشياء من قاعدة البيانات لاستخدامها كخيارات في المنسدلة الخاصة بي.
$ _session هو:
[sess_name] => Array(
[properties] => Array(
1=> Hotel A,
2=> Hotel B
),
[selected] => 1
)
أحتاج إلى الاستيلاء على الفندق A من المحدد ، ثم الوصول إلى جميع الحسابات تحت الفندق A من قاعدة البيانات:
id title hotel_id
------------------------------
1 Hotel A Twitter Account 1
2 Hotel B Facebook Account 2
3 Hotel A Facebook Account 1
أحتاج إلى معرفات 1 و 3 لأن Hotel_id هو 1 في سياق:
$this->addElement( 'select', 'account', array(
'multioptions' => $NEED_IT_HERE
));
إليك رمز الاستيلاء على الاستعلام / الجلسة:
$cs = new Zend_Session_Namespace( SESS_NAME );
$model = new Model_DbTable_Social;
$s = "
SELECT social_accounts.*
FROM social_accounts
LEFT JOIN social_media_outlets ON social_media_outlets.id = social_accounts.property
WHERE social_accounts.property=".(int)$cs->selectedclient;
لدي هذا الرمز في صفحة النموذج الخاصة بي ، لكنني بحاجة إلى نقله إلى طرازتي الآن.
المحلول
إذن أين مشكلتك؟
قم بإجراء استعلام مناسب على قاعدة البيانات الخاصة بك للحصول على هذه الحسابات.
اصنع صفيفًا مناسبًا من النتيجة. (معرف => العنوان)
يمكنك تعيين خيارات على العنصر الموجود بالفعل:
$element = $form->getElement('account');
$element->setMultiOption( $option_array );
يمكنك إنشاء طريقة في فئة النماذج الخاصة بك والتي من شأنها أن تقبل DB OBJ ، وجلسة OBJ وإجراء الإجراءات اللازمة لتحميل هذه الخيارات وتعيينها.
النموذج ، الموجود في التطبيق/الوحدات النمطية/FOO/Models/DBTable/Social ، اسم فئة النموذج هو model_dbtable_social والوحدة FOO. يرمي خطأ فادح:
ربما يجب تسمية فصل طاولة DB الخاص بك:
Foo_Model_DbTable_Social
والتطبيق. يجب أن يحتوي على:
resources.modules[] =
; (It is autoloader for modules)
الفئة "model_dbtable_social" عندما أحاول استدعاءها في النموذج الخاص بي. أم أن هذه الطريقة التي ذكرتها أسهل؟
إنها ممارسة جيدة أن تطلب تلك الموارد في __construct كما قال تشيلميرتز. هذا حديث لطيف حول الموضوع ذي الصلة:http://www.youtube.com/watch؟v=-frm3vphsei
قد ترغب في قراءة سؤالي حول "مكان توصيل النماذج بالنماذج":عقيدة Zend-Framework ، ونمط MVC: ما نوع الطبقة التي يجب أن توصيل البيانات بين النماذج والنماذج؟ليس هناك الكثير من الحلول