البحث معرف البند في استضافة جملة
في بلدي تحكم مكون مخصص لدي وظيفة حفظ (). في نهاية فإنه يعرض رسالة والموجهات إلى رابط
أواجه مشاكل للقيام بما يلي:
المعلمة القائمة 1.Use من حقل مخصص بدلا من سلسلة JText. إذا كنت تستخدم هذا داخل الدالة:
أحصل على إشعار خطأ:
$ الرسالة اسم بلدي الحقل القائمة المخصصة المحددة في ملف xml. إذا أسميها مباشرة عن الأنظار، ثم أنها على ما يرام.
2.Get نشط itemid القائمة واستخدامها داخل setRedirect ().
أحصل على itemid فارغة في URL إذا كنت تستخدم مثل هذا:
لقد وجدت الكثير من المعلومات حول استدعاء المعلمات القائمة في المكونات ولكن لا شيء من ذلك ساعدني
بعد بعض التجارب، وكنت قادرا على تكرار المشكلة:
** نموذج الموجهات إلى وجهة نظر دون عنصر قائمة أو الموجهات إلى نفسها نسبيا إلى رابط مثل هذا واحد:
(لا يهم إذا كان عرض له عنصر القائمة أم لا، وهذا هو مجرد غبي التوجيه جملة.) **
لذلك ما يلي ما ينبغي القيام به لمنع الخطأ:
1) ويرى أن تكون مرتبطة مع عنصر القائمة في الخلفية جملة
2) يجب أن يكون عنوان الموقع إلى النموذج في الواجهة / القائمة اسم مستعار
3) يجب عمل أشكال لا توجيه لرأي آخر، من الأفضل أن تكون فارغة
4) يجب أن تحتوي على شكل مدخلات الخفية مع مهمة
ثم مشاركتك وتوفير التوجيه في أعمال تحكم مثل السحر، لأنك تعمل في إطار البند القائمة (رابط).
ولكن، إذا كنت إعادة توجيه لرأي آخر أو عن طريق JRoute إلى وجهة النظر نفسها دون حفظ هوية العنصر الحالي، سوف يترك سياق البند القائمة ( "المكون / mycomponent / MYVIEW").
هذا يحدث كثيرا في جملة، لأن نظام التوجيه الحالي لا تحقق رابط معين ضد عناصر القائمة في قاعدة البيانات. لمنع ذلك، يمكنك القيام بالإجراءات التالية:
1) توسيع جهاز التوجيه من مكون الخاص بك مع وظيفة الذي يبحث في الجدول عنصر القائمة لرابط الحالي ويعود في هذا البند بند معرف / القائمة. (لقد فعلت ذلك بالفعل في الماضي، وأنه يعمل.)
2) إضافة الحقول المخفية في النموذج الخاص بك الذي يحتوي على عرض معرف البند، مهمة والهدف (الطريقة الصحيحة في جملة لتوجيه).
3) إعادة توجيه عناوين مثل "المكون / mycomponent / MYVIEW" لمسار URL الصحيح.
4) يمكنك تعيين fallbacks في بارامس المكونة لكل عرض. وهذه السلسلة من معرف عنصر إلى عنصر بارامس وليس وجهات النظر إلى مسار رابط. التفاصيل view1 -> منسدلة -> حدد بالسلاسل عنصر القائمة
$ itemId = $ params-> الحصول على ($ mycurrentviewname)؛
لا تستخدم القائمة-$> getActive () إن لم يكن ضروريا على الاطلاق، بسبب نظام التوجيه جملة غبي. أنا التوصية لتعيين عنصر القائمة يدويا بطريقة أو بأخرى.
كيف قلت، الخطأ هو في مكان ما في بداية التوجيه. هذا يمكن أن يكون مجرد عنوان موقعك الذي يؤدي إلى النموذج الخاص بك أو إعادة توجيه بعد تقديم النموذج إلى وجهة نظر دون عنصر قائمة أو رابط والتي لا تحتوي على itemId.
هذا إضافة إلى وظيفة حفظ الخاص بك بين itemid $ ورسالة $:
ثم تضيف "مهمة = saveItemid = 101" إلى عنوان الموقع والتي ترجع رسالة خطأ الخاص بك. (تغيير 101 إلى معرف عنصر الخاص بك!)
يجب أن تكون إعادة توجيهها بشكل صحيح الآن.