Zend Custom Route إذا لم يتم العثور على تطابق

لدي تطبيق ZF بعدة وحدات كما يلي: (كالعادة)

root\
    \application\
                \default
                \items
                \me
                   \controllers
                   \views

يستخدم التطبيق التوجيه الافتراضي مثل /module/controller/action ؛

ما أريده هو: إذا لم يتم العثور على تطابق لـ Zend Routing الافتراضي (لم يتم العثور على أي إجراء/وحدة تحكم/وحدة نمطية) ، فعليك توجيه المسار إلى المسار المطلوب مع نقطة نهاية عنوان URL التي يتم بثها إلى المعلمات.

فمثلا:

  • mydomain.lh/me -> will match the module me, controller index, action index ( as default )

  • mydomain.lh/my_category_name -> will match the module items, controller index, action index, params: category => my_category_name -> using the desired path route

    • no my_category_name module exists to match against

لقد حاولت مع هذا ، إلى bootstrap.php:

 public function _initRoutes ()
{
    $router = $this->_front->getRouter();//returns a rewrite router by default

    $router->addRoute(
        'cat-item',
        new Zend_Controller_Router_Route('/:category',
                                         array(
                                            'module' => 'items',
                                            'controller' => 'index',
                                            'action' => 'index'))
    );
}

تشير Witch إلى الموقع الصحيح (أعرف لأنني var_dump-up url للطلب في items/index/index الإجراء وكان عنوان URL والمعلمات المتوقعان موجودين ، ولكن إذا لم أقم بذلك var_dump (شيء) ؛ الخروج ؛ إلى الإجراء ، يتم تقديم صفحة فارغة.

  • لم يتم إجراء أي إخراج ولكن أيضًا لم يتم إنشاء أي خطأ ، وحالة الطلب هي 200 - موافق

أي شخص لديه اقتراح؟

شكرا لكم!

0
لا ، ليس هناك خطأ. إذا أزلت قاعدة التوجيه ، فستعود جميع الأمور إلى وضعها الطبيعي. - عند إضافة هذه القاعدة ، لا يمكن الوصول إلى أي إجراء آخر بعد ذلك ، مع إعادة توجيه كل شيء إلى المسار المطلوب ، كما أن الساحرات تمثل مشكلة أيضًا.
وأضاف المؤلف Serbu Florin-Adrian, مصدر
نعم ، حاليًا هذا هو الحل لذلك ، أستخدم _forward عند طرح خطأ 404 على وحدة تحكم الأخطاء. كنت آمل أنه يمكن القيام به مع أجهزة التوجيه - يجب أن تكون ساحرة الحل الأنيق.
وأضاف المؤلف Serbu Florin-Adrian, مصدر
إذا كان بإمكانك var_dump في الإجراء وكان لديك برنامج العرض النصي المسمى/الموضوعة بشكل مناسب لهذا الإجراء ، فغالبًا ما تشير صفحة فارغة إلى حدوث خطأ ولكنك قمت بإيقاف الأخطاء. تعديل application/configs/application.ini لعرض هذه الأخطاء - phpSettings.display_startup_errors = 1 و phpSettings.display_errors = 1 و resources.frontController.params.displayExceptions = 1 ) غالبًا ما يعرض المشكلة.
وأضاف المؤلف David Weinraub, مصدر
آآآه ، حسناً هذه قضية مختلفة ليس من المستغرب أن هذا الطريق يلتقط الكثير من عناوين url ، بما في ذلك الافتراضي ؛ انها عامة جدا. ربما اعتراض في وحدة تحكم الخطأ ، والتحقق من حالة 404 ، ثم إما إعادة توجيه أو تعيين params الطلب إلى المطلوب (الوحدة النمطية ، وحدة تحكم ، عمل) الثلاثي وتعيين الطلب كما لم ترسل.
وأضاف المؤلف David Weinraub, مصدر