استخدام عرض المساعدين في وحدات التحكم في إطار zend

StackOverflow https://stackoverflow.com/questions/2401392

سؤال

لدي وحدة تحكم مطلوبة مع AJAX (يرسل بيانات JSON)، لذلك لا أستخدم عرضا.

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

هل هذا ممكن ؟

أو ربما أنا يفعلها خطأ (ربما يجب أن يكون لي رؤية، ولكن كيف مع جون)؟

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

المحلول

يمكنك الوصول إلى أي Viewhelper من وحدة التحكم بواسطة

$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper('helpername');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$broker->getView()->helpername(/*params*/);

يرى zend: كيفية استخدام وظيفة مخصصة من مساعد عرض في وحدة تحكم؟

ومع ذلك، قد تكون على حق أنك تفعل ذلك خطأ (مضحك الموافقة المسبقة عن علم BTW.)، لكنني لا أستطيع أن أقول حقا من سؤالك. يرجى تحسينه لماذا تحتاج إلى استدعاء مساعد العرض وما من المفترض أن تنسيقه.

نصائح أخرى

Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');

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

وكل هذه القيم التي تقوم بإعدادها على العرض على مساعد الحركة وما شابه ذلك ... قبل ركل وحدة التحكم؟ ذهب كل شيء مع الريح!

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

قد تفاجأ كما كنت!

يمكنك إنشاء مثيل من المساعد .. هذا سيعمل في وحدات تحكم ونماذج وفي كل مكان تحتاج المساعد.

على سبيل المثال

// create Instance   
$serverUrl_helper = new Zend_View_Helper_ServerUrl();

// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();

نهج آخر هو استخدام Contextswitch أو AjaxContext إجراء مساعدين. وبعد يتيح لك ذلك استخدام عرض نصي عرض يمكنك من خلاله استدعاء عرض العرض الخاص بك بالطريقة القياسية.

ما عليك سوى استخدام المساعدين للعمل، العديد من المساعدين المشاهدات متوفرة كمساعدين العمل أيضا.

أو مباشرة باستخدام Zend_Date أو sprintf.

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