CAKEPHP-通过特定控制器禁用/启用按钮
在CAKEPHP中,可以通过我的控制器(UsersController)放置一个按钮(可以看到“默认”)禁用吗 并显示带有一些信息的标签?(来自用户控制器的所有内容) 提前谢谢 [更新] 我的目标是,当我在我的应用程序中进行身份验证时,我想放置一个“注销”按钮(在默认视图中找到)。 另一方面,我想显示一个带有典型消息(“欢迎用户名”)的标签。此消息也将位于注销按钮(和默认视图)旁边 我的默认.TCP视图CAKEPHP-通过特定控制器禁用/启用按钮,cakephp,Cakephp,在CAKEPHP中,可以通过我的控制器(UsersController)放置一个按钮(可以看到“默认”)禁用吗 并显示带有一些信息的标签?(来自用户控制器的所有内容) 提前谢谢 [更新] 我的目标是,当我在我的应用程序中进行身份验证时,我想放置一个“注销”按钮(在默认视图中找到)。 另一方面,我想显示一个带有典型消息(“欢迎用户名”)的标签。此消息也将位于注销按钮(和默认视图)旁边 我的默认.TCP视图 <form class="navbar-form pull-right">
<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>
我这样做的方式如下。我打开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
变量。当您在数组中返回一些数据时,您就登录了。当您得到false
或null
时,您不是。所以你可以这样做:
if ($authUser){
//show logout button
} else {
//show login button
}
// or keep it short
echo $authUser ? /*logout*/ : /*login*/;
当然,您可以扩展if语句,使其尽可能精确。或者,您可以将
AuthComponent::loggedIn
变量解析到视图中,就像我们将完整的用户数据传递到视图中一样。如果您只需要登录状态,强烈建议使用第二种方法。这样就不会向视图传递不必要的数据。稍微增加加载时间 您可以在控制器中执行一些逻辑,并为视图设置一个变量。但我不确定你想要实现什么。你能用一个更具体的例子来更新你的问题吗?你是遇到了问题还是?提前感谢:)我已经更新了我的问题。非常感谢:)有效:D
if ($authUser){
//show logout button
} else {
//show login button
}
// or keep it short
echo $authUser ? /*logout*/ : /*login*/;