2

当我调用控制器然后显示错误 404 系统无法找到请求的操作“索引”。

它的测试控制器文件

class TestController extends Controller

{
   public function actionLogin()
{
    $model=new SignupForm();
    if(isset($_POST['SignupForm']))
   {
       // collects user input data
        $model->attributes=$_POST['SignupForm'];
        // validates user input and redirect to previous page if validated
        if($model->validate())
           $this->redirect(Yii::app()->user->returnUrl);
   }
    // displays the login form
    $this->render('index',array('model'=>$model));
}
  }

它的模型文件

class SignupForm extends CFormModel
  {

    public $username;
    public $password;
    public $rememberMe=false;

    public function rules()
    {
        return array(
            array('username, password', 'required'),
            array('rememberMe', 'boolean'),
            array('password', 'authenticate'),
        );
    }

    public function authenticate($attribute,$params)
    {
        $this->_identity=new UserIdentity($this->username,$this->password);
        if(!$this->_identity->authenticate())
            $this->addError('password','Incorrect username or password.');
    }

  }

当我调用控制器然后显示错误 404 系统无法找到请求的操作“索引”所以如何修复此错误

4

2 回答 2

2

动作“索引”是 Yii 控制器中的默认动作。您可以更改此行为,设置特定控制器的默认索引。

class TestController extends Controller
{
    public $defaultAction = 'login';

    public function actionLogin()
    {
    }
}

在这种情况下,当您运行 /index.php?r=test 时,将类似于 /index.php?r=test/login。

于 2013-10-12T23:09:25.850 回答
0

您的控制器中没有 actionIndex() 方法。所以要么调用 www.yourwebsite.com/index.php?r=test/login 要么在你的测试控制器中创建一个 actionIndex() 方法。

于 2013-10-11T13:15:00.543 回答