0
我有一個完全動態的網站,它創建菜單,動態地從後端查看所有內容。 現在讓我告訴你網址的順序創建:在CI中配置路由以接受n級URL地址
http://localhost/occ/level1/level2/....leveln
基本上1級,level2的,...... leveln是一個特定的菜單例如家的水平(層次)/ contact_section/contact_us現在管理員可以創建多個頁面,也可以創建他想要的菜單級別,所以URL邏輯是什麼,它將繼續跟隨父級,直到最高級父級,並返回URL並在URL末尾將是我傳遞給一個通用控制器的名稱,該通用控制器基本上採用運行db查詢獲取的名稱所有的數據,然後在此處顯示的頁面是我的路線:
$route['default_controller'] = 'Home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['Admin'] = 'Admin';
//$route['(:any)'] = 'Home/pages/$1';
$route['(:any)/(:any)'] = 'Home/pages/$1/$2';
//$route['(:any)/(:any)'] = 'Home/pages/$1';
現在上面的路線有兩個問題:
- 讓我們假設我有兩個層次URL,這樣的路線$路線[」 (:any)/(:any)'] ='Home/pages/$ 1/$ 2';將被調用現在的頁面控制器接受一個名稱,並在我的情況下顯示的頁面,它總是返回名字,或者你可以說1美元,而我希望URL中的姓氏被髮送到控制器。
- 我們怎樣才能使它通用?就像我可以在URL中使用斜槓分隔n級別的名稱,如何配置我的路由以接受所有URL並將URL的姓氏傳遞給控制器。因爲目前它顯示的頁面沒有找到,如果我有一個在路由中定義的其他級別的URL!
是我我正在使用CI 3.X,我收到無效參數傳遞implode() –
改變這個'$ params = implode(「,」,$ param);'to'$ params =(count($ param )> 1)? implode(「,」,$ param):$ params;' – elddenmedio
爆炸字符串我只返回一個屬性不是兩個,三個...... n –