2014-03-12 39 views
1

我需要製作一個如下所示的動態頁面:example.com/nameofbook/1 - 其中1是頁面的編號。哪個更好?從控制器傳遞參數或使用uri?

這是2個參數。

我知道2種方法。 1.在控制器中我有功能頁面($ book,$ page) 2.從鏈接中取出參數this-> uri-> segment。

我應該使用什麼以及爲什麼以及哪個更安全?

無論如何,當我使用控制器2參數的CSS代碼不加載。當我使用1它加載。我的路線是$route['page/(:any)/(:any)']='main/page/$1/$2'

在此先感謝。

+0

請注意,您也可以使用表單來完成此操作,因此您不會公開任何內容 - 只需將書名和頁碼作爲隱藏的表單字段傳遞,而不是下一頁鏈接即可獲得按鈕或圖形。但無論哪種方式,確保您在將數據發送到數據庫之前清理/驗證數據! – cartalot

回答

0

使用$ this-> uri->段與在控制器中使用參數完全相同..參數將傳遞給控制器​​,如果它的URI部分是否已在方法中定義它們。

即:

page() { 
    // This will be an array of passed arguments 
    $args = func_get_args(); 
} 

我不知道爲什麼你的CSS不超過另一個方法加載。 也是由URI來判斷,你的路線將不會工作。因爲「頁」部分不在URI,所以你的URI應該是example.com/page/nameofbook/1

無論哪種方式是「安全的」,這讓在2無差異你建議的方式。

+0

好吧,我不明白路線應該如何看。我有$ route ['nameofbook /(:any)'] ='main/nameofbook/$ 1';它工作 – Alex7

+0

如果你不希望頁面在你的URI中,那麼你將不得不爲每一個'nameofbook'設置一個路由可能..所以它看起來像:'$ route ['nameofbook1 /(:num) '] ='main/page/nameofbook1/$ 1'; $ route ['nameofbook2 /(:num)'] ='main/page/nameofbook2/$ 1';等等......' –

+0

好的,謝謝你的時間。 – Alex7