تكوين التوجيه في CakePhP
-
27-09-2019 - |
سؤال
أحاول تنفيذ التوجيه في CakePhP. أريد أن يتم تعيين عناوين URL مثل هذا ...
www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about
لذلك ، كتبت في ملف config/routes.php ..
Router::connect('/:action', array('controller' => 'nodes'));
الآن ، حصلت على الشيء ولكن عندما أنقر على الروابط ، يظهر عنوان URL في المتصفح مثل www.example.com/nodes/main www.example.com/nodes/about
هل هناك طريقة يمكنني من خلالها الحصول على عناوين URL لتظهر بالطريقة التي يتم بها توجيهها؟ سيكون الإعداد في .htaccess أو httpd.conf سهلاً - لكن لا يمكنني الوصول إلى ذلك.
تحياتي فيكرام
المحلول
هذا يجب أن يعمل:
Router::connect('/main', array('controller' => 'nodes', 'action' => 'main'));
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about'));
يمكنك أيضًا القيام بشيء أكثر قوة ، مثل هذا:
$actions = array('main','about');
foreach ($actions as $action){
Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action'));
}
نصائح أخرى
في الأساس إذا تم إنشاء روابطك باستخدام HTML Helper ، مع التنسيق التالي:
<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>
ثم ستقوم الكعكة بتحويل الروابط بشكل صحيح إلى www.example.com/main
ولكن إذا كانت روابطك
<?php echo $this->Html->link('your link', '/nodes/main/');?>
سوف يشيرون إلى www.example.com/nodes/main