2013-05-20 61 views
-2

它可能,在CAKEPHP中,通過我的控制器(UsersController),把一個按鈕(在視線'默認')禁用?CAKEPHP - 通過一個特定的控制器禁用/啓用按鈕

並顯示帶有一些信息的標籤? (來自用戶控制器的所有內容)。

在此先感謝。

[更新]

我的目標是,當我進入我的應用程序進行身份驗證,我想提出「註銷」(在默認視圖中)可見的按鈕。另一方面,我想用一個典型的消息('Welcome username')顯示一個標籤。此消息也將是下一個退出按鈕(和默認視圖)

MY DEFAULT.TCP VIEW

<form class="navbar-form pull-right"> 
    <?php echo $this->HTML->link('<i class="icon-user"></i>LOGIN', array('controller'=>'users','action'=>'login'),array('class' => "btn btn-primary",'escape'=>false)); 
     echo $this->HTML->link("<i class='icon-pause icon-white'></i>",array(),array('escape'=>false)); 
    echo $this->Form->label('message'); 
     echo $this->HTML->link('<i class="icon-off"></i>LOGOUT', array('controller'=>'users','action'=>'logout1'), array('class' => "btn btn-primary",'escape'=>false)); ?> 
    </form> 

MY USERSCONTROLLER

public function login(){ 

//IF I LOGGEDIN 

//CODE THAT SHOW MESSAGE AND PUT VISIBLE A BUTTON 

} 
+0

你可以在你的控制器中做一些邏輯併爲你的視圖設置一個變量。但我不確定你想要達到什麼目的。你能用更具體的例子來更新你的問題嗎?你遇到問題還是...? – Jelmer

+0

在此先感謝:) 我已經更新我的問題。 – Jcbo

回答

0

我這樣做是如下的方式。我打開了我的AppController,並在beforeRender()方法我添加下面的代碼:

public function beforeRender(){ 
    $this->set('authUser', $this->Auth->user()); 
    parent::beforeRender(); //make sure to do whatever is set in the controller beforeRender 
} 

現在你可以檢查你的意見裏面authUser變量。當你得到一些數據返回的數據時,你已經登錄了。當你得到falsenull你不是。所以,你可以做這樣的事情:

if ($authUser){ 
    //show logout button 
} else { 
    //show login button 
} 

// or keep it short 

echo $authUser ? /*logout*/ : /*login*/; 

當然,你可以擴展你的if語句讓你可能需要準確。或者,您可以將視圖的AuthComponent::loggedIn變量解析爲與將完整用戶數據傳遞到視圖相同的方式。如果您只需要登錄狀態,強烈建議使用第二種方法。這樣你就不會將不必要的數據傳遞給你的視圖。稍微增加加載時間。

+0

非常感謝你:) 它的工作原理:D – Jcbo