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