一条路线不起作用(yii)

时间:2018-01-17 09:28:55

标签: yii routes

Hy stackoverflow! 我试图用Yii 1.1.14(这是一个旧网站)将表单制作成一个外部页面。

我在我的视图中创建了一个目录,调用signinPartners并在此文件中调用了一个php文件signin

我还创建了一个控制器:

class SigninPartnerController extends Controller
{
    public function actionSignin(){
        $this->render('/signin');
    }
}

他通过以下方式呈现我的配置中定义的路由/signin

return array(
    '' => 'index',
    'signin' => 'signinPartners/signin',
);

但是当我尝试网址http://mylocalserver/signin时,网站会发回Error 404 Unable to resolve the request « signin-partners/signin ».

这真是令人不安,因为我的网站上还有其他网址,他们的工作方式相同而不会出现错误404.我不知道我错过了什么......有人可以帮忙吗?

my urlManager:

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName' => false, // do not display index.php in the url
    'urlSuffix' => '/',
    'rules' => $routesRules, //this variable contains the array defined above
),

我还检查了我的运行时间:

2018/01/17 11:12:16 [error] [exception.CHttpException.404] exception 'CHttpException' with message 'Impossible de résoudre la requête « signinPartners/signin ».' in D:\Windows\Windows\CommonFiles\wamp64\www\MoovTime-Conso\library\Yii\web\CWebApplication.php:286
Stack trace:
#0 D:\Windows\Windows\CommonFiles\wamp64\www\MoovTime-Conso\library\Yii\web\CWebApplication.php(141): CWebApplication->runController('signinPartners...')
#1 D:\Windows\Windows\CommonFiles\wamp64\www\MoovTime-Conso\library\Yii\base\CApplication.php(183): CWebApplication->processRequest()
#2 D:\Windows\Windows\CommonFiles\wamp64\www\MoovTime-Conso\public\frontend\index.php(36): CApplication->run()
#3 {main}
REQUEST_URI=/signin
---

(异常消息是法语,意思是Unable to resolve the request « signin-partners/signin »

好的,大更新,我尝试使用routes.php,我意识到我的控制器的名称与signinPartners不匹配。所以,我用以下内容更新路线规则:

return array(
    '' => 'index',
    'signin' => 'signinPartner/signin',
);

现在,我们遇到了一个新错误:Controller can't find the view « /signin ».。 有帖子Controller can't find the view in Yii可以回答这个问题!

ANSWERED

2 个答案:

答案 0 :(得分:0)

尝试在signinPartners中添加-

'signin-partners/signin'

答案 1 :(得分:0)

我的案例中的问题是操作,我视图中包含页面和路由规则的目录名称。

首先,我从以下位置更新路线规则:

return array(
    '' => 'index',
    'signin' => 'signinPartners/signin',
);

到:

return array(
    '' => 'index',
    'signin' => 'signinPartner/signin', // controlerName/actionName
);

控制器名称错误。

第二次,为了与控制器的名称匹配,我只是将views来电signinPartners中的目录重命名为signinPartner(仅为了便于阅读)。

最后,我更新了以下操作actionSignin

public function actionSignin(){
    $this->render('/signin');
}

对于:

public function actionSignin(){
    $this->render('/signinPartner/signin');
}

我使用新目录名更改路径。