首页 文章

一条路线不起作用(yii)

提问于
浏览
0

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',
);

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

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

我的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

    尝试在signinPartners中添加 - .

    'signin-partners/signin'
    
  • 0

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

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

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

    至 :

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

    控制器名称错误 .

    在第二次,为了与控制器的名称匹配,我只是将 views 中的目录重命名为 signinPartnerssigninPartner (仅用于可读性) .

    最后我更新了动作 actionSignin

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

    用于:

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

    我用新目录名更改路径的位置 .

相关问题