Module Yii在管理模块中找不到操作登录
请参阅下面的代码Module Yii在管理模块中找不到操作登录,module,yii,Module,Yii,请参阅下面的代码 <?php class DefaultController extends Controller { public function actionIndex() { $this->render('index'); } /** * Displays the login page */ public function actionLogin() { $model =
<?php
class DefaultController extends Controller
{
public function actionIndex()
{
$this->render('index');
}
/**
* Displays the login page
*/
public function actionLogin()
{
$model = new LoginForm;
// collect user input data
if (isset($_POST['LoginForm']))
{
$model->attributes = $_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if ($model->validate() && $model->login())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login', array('model' => $model));
}
public function filters()
{
return array(
'accessControl',
);
}
public function accessRules()
{
return array(
array('allow', // allow all users to perform the 'login' action
'actions' => array('login'),
'users' => array('*'),
),
array('allow', // allow the admin user to perform everything
'actions' => array('*'),
'users' => array('@'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
}
正如您所见,我通过setComponents添加了loginUrl,但这也不起作用。如果您没有登录用户,访问控制过滤器将启动并将您重定向到“主页”。您可以在控制器上执行的唯一操作是“登录”,因此索引是被拒绝操作的一部分 如果您没有登录用户,访问控制过滤器将启动并将您重定向到“主页”。您可以在控制器上执行的唯一操作是“登录”,因此索引是被拒绝操作的一部分 谢谢你的帮助,但我希望不要登录重定向到登录页面。并不是说他们会回到家里。他们应该重定向到SiteController/Index的位置设置在哪里?将是“用户”应用程序组件的“loginUrl”。但是默认情况下,这已经是site/login了。我添加了AdminModule.php,因为我现在通过$this->setComponents设置了loginUrl。但这也不起作用。您是否可以添加一个$this->setComponent('user',NULL);然后再确认一下?用户组件基本上是在一开始就初始化的。更新配置不会创建新的配置实例。首先,请确保在没有访问控制的情况下一切正常,查看是否可以正确访问所有模块操作,等等。尝试确认重定向实际上是由筛选器完成的。也可能是您在配置中错误配置了与URL路由相关的内容。谢谢您的帮助,但我希望未登录的重定向到登录页面。并不是说他们会回到家里。他们应该重定向到SiteController/Index的位置设置在哪里?将是“用户”应用程序组件的“loginUrl”。但是默认情况下,这已经是site/login了。我添加了AdminModule.php,因为我现在通过$this->setComponents设置了loginUrl。但这也不起作用。您是否可以添加一个$this->setComponent('user',NULL);然后再确认一下?用户组件基本上是在一开始就初始化的。更新配置不会创建新的配置实例。首先,请确保在没有访问控制的情况下一切正常,查看是否可以正确访问所有模块操作,等等。尝试确认重定向实际上是由筛选器完成的。也可能是您在配置中错误配置了与URL路由相关的内容。
class MyModule extends CWebModule
{
public function init()
{
...
Yii::app()->setComponents(array(
'user'=>array(
'class'=>'CWebUser',
'stateKeyPrefix'=>'My',
'loginUrl'=>Yii::app()->createUrl($this->getId().'/default/login'),
),
), false);
...
class MyModule extends CWebModule
{
public function init()
{
...
Yii::app()->setComponents(array(
'user'=>array(
'class'=>'CWebUser',
'stateKeyPrefix'=>'My',
'loginUrl'=>Yii::app()->createUrl($this->getId().'/default/login'),
),
), false);
...