سؤال

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

$ _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: ما نوع الطبقة التي يجب أن توصيل البيانات بين النماذج والنماذج؟ليس هناك الكثير من الحلول

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