2009-12-18 59 views

回答

13

將cake/libs/controllers中的pages_controller.php文件複製到您的app/controllers/dir中。然後你可以修改它來做你想做的任何事情。隨着AUTH組件,典型的方式,讓特定的訪問是這樣的:

class PagesController extends AppController { 
... 
function beforeFilter() { 
    $this->Auth->allow('action1', 'allowedAction2'); 
} 
... 

我建議文件高度複製到你的控制器目錄,而不是就地編輯它,因爲它會使升級蛋糕更容易,而你不小心覆蓋了一些東西的可能性較小。

+3

$ this-> Auth-> allow('*');也可以正常工作。 – Wayne 2009-12-19 04:13:47

+0

是的,儘管這將允許頁面控制器中的所有操作。我認爲OP說他想允許所有人訪問,但只能訪問PC中的特定視圖。 – 2009-12-19 05:39:31

+0

@Wayne真的嗎?這就像飛機在沒有掩護的情況下飛行。 – 2017-06-23 10:59:39

11

您可以將以下內容添加到您的app_controller。

function beforeFilter() { 
    if ($this->params['controller'] == 'pages') { 
    $this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN') 
    } 
} 

然後你不必複製頁面控制器。

5

我還沒有嘗試過其他方式,但這也是允許訪問所有那些靜態頁面的正確方法,因爲顯示是常見操作。 在app_controller中:

//for all actions  
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display')); 

//for particular actions 
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home')); 
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus')); 
相關問題