2011-07-13 94 views
0

我正在爲客戶做一個網站,並決定我會使用代碼點火器。codeigniter額外url段

該網站基本上有兩個後端,一個設計師,一個銷售團隊。所以,在登錄後,用戶會被重定向到任何

  • mysite.com/sales/
  • mysite.com/design/

的銷售團隊,比如可以查看訂單,集裝箱,產品,所以我需要一個控制器爲每個這些。

  • mysite.com/sales/orders/

銷售需要能夠查看,編輯,刪除某些訂單...

  • mysite.com/sales/orders/vieworder/235433

基本上我的問題是我沒有足夠的url段來玩。

我解決我的問題

  • 刪除訂單,集裝箱,產品類別,使他們所有的方法爲銷售類的方法,儘管這將意味着大量的方法和裝載所有的思想模型,所以它似乎毫無意義。

  • 刪除銷售/設計師類並根據會話數據中存儲的用戶類型控制每種類型的用戶可以訪問的內容。

  • 有一個額外的網段的方式?

我很欣賞任何建議,我只是不想讓項目進入3周,並意識到我從一開始就錯了!

+0

請原諒我,「你怎麼」確實缺少「額外的網址段」? 什麼是「缺失」? – Herr

+0

嗨。你引用我的話說「失蹤」,雖然我沒有?我只需要一種允許銷售團隊訪問某些類和他們的方法的方法,並允許設計人員訪問一些相同的類,但不是所有的方法。 – callumander

+0

爲什麼用戶不能通過數據庫訪問某種類型的訪問權限,並且如果用戶/設計人員缺少權限則阻止該函數執行? – Herr

回答

2

使用文件夾。

如果您在/application/一個子文件夾名爲sales你可以把不同的控制器中有:

/application/ 
    /sales/ 
     orders.php /* Controller */ 
    /design/ 

然後在orders.php你會把你的vieworders($id)方法等等,你將能夠進入電影它domain.com/sales/orders/vieworders/id

您還可以使/models//views/中的子文件夾組織您的文件。

現在,訪問控制是分開的,它更多地取決於您使用的認證系統。

0

給用戶/設計者一個特權,比如用戶表中的一列,在函數的開頭檢查用戶的權限,然後阻止或執行它。

這將是我會這樣做的確切方式。

0

看起來像你應該看看路由類。可能是一個骯髒的解決方案,但將銷售/(:any)重新路由到sales_ $ 1之類的東西意味着您將使控制器的名稱像sales_orders一樣。 相同的設計部分。 (請注意:$routing['sales/(:any)'] = 'sales_$1';應該這樣做;請參閱application/config/routing.php)。