Yii为控制器中的每个操作设置用户
我尝试为控制器中的每个操作设置用户 我有acces规则 我为管理员和任务设置了两个不同的菜单 但我有一个动作是任何菜单上都没有的 yii中操作的默认用户是quest,所以若我并没有在管理员菜单中提到操作,那个么该操作的用户将是quest 我不想在菜单(布局)中提到该操作,但我希望该操作的用户是管理员。 理论上,我希望为每个单独的操作设置用户Yii为控制器中的每个操作设置用户,yii,controller,set,action,Yii,Controller,Set,Action,我尝试为控制器中的每个操作设置用户 我有acces规则 我为管理员和任务设置了两个不同的菜单 但我有一个动作是任何菜单上都没有的 yii中操作的默认用户是quest,所以若我并没有在管理员菜单中提到操作,那个么该操作的用户将是quest 我不想在菜单(布局)中提到该操作,但我希望该操作的用户是管理员。 理论上,我希望为每个单独的操作设置用户 public function actionTest() { !Yii::app()->user->isGuest;
public function actionTest()
{
!Yii::app()->user->isGuest;
...
}
类似的东西,但这不是工作
更多代码:::
我有控制器测试控制器
我有layout main.php
我有登录表单和操作注销
因此,下一步:
我的控制器:
class TestController extends Controller
{
/**
* Declares class-based actions.
*/
public function accessRules()
{
return array(
array('allow',
'actions'=>array('login'),
'users'=>array('*'),
),
array('allow',
'actions'=>array('test1','test2','logout','test3'),
'users'=>array('@'),
),
);
}
public function actionLogin()
{
$this->render('login');
}
public function actionTest1()
{
$this->render('test1');
}
public function actionTest2()
{
$this->render('test2');
}
public function actionTest3()
{
$this->render('test3');
}
public function actionLogout()
{
...
}
}
在layout main.php中,我有菜单的标准:
if(Yii::app()->user->isGuest)
{
$this->widget('bootstrap.widgets.TbNavbar',array(
'items'=>array(
array(
'class'=>'bootstrap.widgets.TbMenu',
'items'=>array(
array('label'=>'Login', 'url'=>array('/test/login')),
),
),
),
));
}
else
{
$this->widget('bootstrap.widgets.TbNavbar',array(
'items'=>array(
array(
'class'=>'bootstrap.widgets.TbMenu',
'items'=>array(
array('label'=>'Test1', 'url'=>array('/test/test1')),
array('label'=>'Test2', 'url'=>array('/test/test2')),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/test/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
),
),
));
}
正如你们所看到的,我并没有在“else”中设置test3,但在测试2中,我设置了重定向到test3,并且在登录test1和test2之后,用户将不是quest,而是test3,因为这是默认设置。
在这种情况下,这不是语法错误。是否发布更多代码?告诉我你试过什么?会出现什么错误?你能更具体一点吗?你说的“但这不起作用”是什么意思?用户是否始终是来宾,或者用户是否始终登录?还有别的吗?