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

アクション "index" は、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 に答える