如何修复此错误404系统无法找到请求的操作“索引”

时间:2013-10-11 10:52:35

标签: php yii

当我调用控制器然后显示错误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系统无法找到所请求的操作"索引"那么如何解决这个错误

2 个答案:

答案 0 :(得分:2)

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

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

    public function actionLogin()
    {
    }
}

在这种情况下,当你运行/index.php?r=test时会像/index.php?r=test/login。

答案 1 :(得分:0)

控制器中没有actionIndex()方法。因此,请调用www.yourwebsite.com/index.php?r=test/login或在测试控制器中创建actionIndex()方法。