استدعاء إجراء وحدة تحكم من ملف CTP
سؤال
أريد استدعاء إجراء ملف وحدة التحكم من ملف .ctp في CakePhP. هل هو ممكن؟ نعم ، كيف؟ الرجاء المساعدة. على سبيل المثال لدي إجراء في وحدة التحكم. users_controller.php
<?php
class UsersController extends AppController {
function get_category() {
....
}
}
?>
أريد أن أسميها من ملف /question/index.ctp.
المحلول
الطريقة الصحيحة للقيام بذلك هي:
$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));
إنشاء عنوان URL the CakePHP way
سيزيد الأداء (لن يضطر إلى استخدام جهاز التوجيه). ستعمل دائمًا ، أثناء القيام بذلك مثل: "المستخدمين/get_category" قد يتسبب في بعض المتاعب عندما لا تكون في صفحة الفهرس.
يجب استخدامه فقط في عناصر (مع ذاكرة التخزين المؤقت خاصة) ، إذا كانت الحالة مختلفة - Reefer إلى ماذا Travis Leleu
كتب في تعليقه.
نصائح أخرى
تجدر الإشارة إلى أنه يجب ألا تعتمد على الطلب كممارسة شائعة. requestAction هي مكالمة ضريبية للغاية ويجب استخدامها فقط إذا لم تتمكن من تنظيم الرمز الخاص بك بأي طريقة أخرى.
من الناحية المثالية ، سترسل البيانات التي تحتاجها من إجراء وحدة التحكم الخاصة بك إلى العرض بدلاً من الاتصال مرة أخرى إلى وحدة التحكم الخاصة بك.
function my_action() {
...
$this->set('category', $this->getCategory());
}
يمكنك تسميته مثل $ this-> requestAction ('controller' => 'المستخدمين' ، 'الإجراء' => 'get_category')