2013-04-10 87 views
0

我使用TankAuth與Codeigniter,我想知道是否可以從視圖調用庫特定的方法,而不是從控制器傳遞它們?例如,可以在Codeigniter中的視圖中調用認證方法嗎?

$this->tank_auth->is_logged_in() 

從視圖中調用輸出動態HTML比從控制器傳遞變量要方便得多。但是,它安全嗎?這是一種可接受的做法嗎?

+0

從您的控制器更好地設置模板變量$ user(例如)當用戶未登錄時等於false,或者當他登錄時用戶信息與數組:)這樣您將能夠知道是否它的假或使用他的用戶數據。 – Svetoslav 2013-04-10 09:10:15

+0

作爲@Svetlio建議最好在控制器中執行它,並且我認爲總是會更好(如果您使用一些複雜的身份驗證結構)將其放入模型中並使其控制器只將信息傳遞給它,然後獲得合法結果。控制器不是數據警察: http:不僅適用於ZF,還適用於所有其他框架,恕我直言) – 2013-04-10 09:14:53

回答

0

沒有理由不能做到這一點,但它違背了MVC概念。您可以在擴展控制器的構造函數中設置這些類型的東西,這樣您就可以在所有控制器中使用像$ is_logged_in這樣的變量,以使其更容易。

+0

它不是「反對MVC概念」,僅僅是針對大多數不理解MVC的框架所需要的。該視圖可以訪問它需要的任何內容*可視化應用程序的當前狀態*。如果這意味着在對象上調用方法,那很好。它不應該做任何事情*「積極」*與這些對象。控制器必須將所有變量設置爲反MVC模式。 – deceze 2013-04-10 09:13:04

相關問題