توجيه CakePhP مع معاملات اختيارية
سؤال
لدي طريقة في وحدة تحكم المستخدمين على غرار:
function members($type = null, $category = null) { ... }
كلا المعلمين اختياري ويمكن استخدامه معًا أو بمفردهما.
لذلك مع الطريق التالي.
Router::connect('/members/*', array('controller' => 'users', 'action' => 'members'));
http://example.com/users/members
يصبح بنجاح http://example.com/members
.
للأسف ما يلي لا يعمل
http://example.com/members/type:cat
http://example.com/members/category:dog
http://example.com/members/type:cat/category:dog
كيف يمكنني إعداد طرقاتي حتى تعمل جميعًا بشكل صحيح؟
المحلول
المعلمات المسماة ليست Automagicaly تم تعيينها على الإجراء. يمكنك إما الحصول عليها عن طريق الاتصال
$ this-> passedargs ['type'] أو $ this-> passedargs ['category'
أو باستخدام المعلمة الثالثة في جهاز التوجيه :: الاتصال:
Router::connect(
'/members/*',
array('controller' => 'users', 'action' => 'members'),
array(
'pass' => array('type', 'category')
)
);
نصائح أخرى
محاولة مع
Router::connect('/members/type\:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Router::connect('/members/category\:(.*)', array('controller' => 'users', 'action' => 'members_category'));
Router::connect('/members/type\:(.*)/category:(.*)', array('controller' => 'users', 'action' => 'members_type'));
لاحظ أنني لم أختبرها ، لكنني أعتقد أنه يجب عليك الهروب من القولون.
لا تنتمي إلى StackOverflow