访问 yii2 控制器方法时找不到对象
Object not found when accessing yii2 controller methods
嗨,我是 YII 2 框架的新手,
我目前正在学习以下教程 http://www.yiiframework.com/wiki/490/creating-a-simple-crud-app-with-yii2-revised-12-20-2013/
一切正常,但是当我在 SiteController.php
中创建一个函数时
即
public function actionLogin()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
当我从浏览器访问它时,
http://localhost/basic/web/site/login/
我正在
未找到对象! 在我的浏览器中,但我可以访问 SiteController.php 索引函数,如下所示 http://localhost/basic/web/
不确定我在这里遗漏了什么,你能告诉我这个问题吗?
提前致谢
EDIT :出于调试目的,我将 die 语句放在 \basic\web\index.php 显然不是也打那个文件
好的。我明白。你没有使用 .htaccess
。请将此 .htaccess
放入 web 文件夹中。您需要检查 Apache 模块 mod_rewrite
现在是否可用。
#Options +FollowSymLinks
#IndexIgnore */*
#RewriteEngine on
# if a directory or a file exists, use it directly
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
#RewriteRule . index.php
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# ...other settings...
中查看更多内容
和 urlManager
在 components
那样 https://yadi.sk/i/TIKuhYPHehMJq
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => true,
'rules' => [
'<_c:[\w\-]+>' => '<_c>/index',
'<_c:[\w\-]+>/<_a:[\w\-]+>' => '<_c>/<_a>',
'<_c:[\w\-]+>/<_a:[\w\-]+>/<id:\d+>' => '<_c>/<_a>',
],
],
嗨,我是 YII 2 框架的新手,
我目前正在学习以下教程 http://www.yiiframework.com/wiki/490/creating-a-simple-crud-app-with-yii2-revised-12-20-2013/
一切正常,但是当我在 SiteController.php
中创建一个函数时即
public function actionLogin()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
当我从浏览器访问它时,
http://localhost/basic/web/site/login/
我正在
未找到对象! 在我的浏览器中,但我可以访问 SiteController.php 索引函数,如下所示 http://localhost/basic/web/
不确定我在这里遗漏了什么,你能告诉我这个问题吗?
提前致谢
EDIT :出于调试目的,我将 die 语句放在 \basic\web\index.php 显然不是也打那个文件
好的。我明白。你没有使用 .htaccess
。请将此 .htaccess
放入 web 文件夹中。您需要检查 Apache 模块 mod_rewrite
现在是否可用。
#Options +FollowSymLinks
#IndexIgnore */*
#RewriteEngine on
# if a directory or a file exists, use it directly
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
#RewriteRule . index.php
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# ...other settings...
中查看更多内容
和 urlManager
在 components
那样 https://yadi.sk/i/TIKuhYPHehMJq
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => true,
'rules' => [
'<_c:[\w\-]+>' => '<_c>/index',
'<_c:[\w\-]+>/<_a:[\w\-]+>' => '<_c>/<_a>',
'<_c:[\w\-]+>/<_a:[\w\-]+>/<id:\d+>' => '<_c>/<_a>',
],
],