gpt4 book ai didi

php - 在没有路由的情况下执行 Yii 模块

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:46 27 4
gpt4 key购买 nike

我有一个名为文章的模块。它存在于 collowing 文件夹中:

- protected
- modules
- article
- controllers
ArticleController.php
- views
-article
articleModule.php

因为我正在制作 CMS。我选择不使用指向 Controller 或操作的直接链接。这意味着调用 example.com/article/article/index。不会工作。由于 CMS 将 url 请求视为页面。 (所以它会寻找一个名为“index”的页面,父级为“article”和“article”。这样的页面不存在。

CMS 为有效页面加载 block ,并且对于其中一个 block ,我想执行文章模块。我尝试使用

Yii::app()->runController($route). 

但是为此你需要一条路线。

是否可以运行这样的模块,以便该模块的工作方式与转到 url example.com/article/article 相同?

或者如果那是不可能的。如何设置 Url 管理器以便它可以处理页面?。使用干净的网址。以下是一些示例:

example.com/join_us  
example.com/join_us/contact
example.com/news/
example.com/countries/us/healthcare

以上是用户可以创建和更改的页面。我已经为此苦苦挣扎了很长时间。通常这将是一件容易的事。但是 Yii 让它变得非常困难。主要是因为 Controller 或模块链接到路线。

最佳答案

把这个放在你的主要配置中:

'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
'rules'=>array(
'gii'=>'gii',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<action>'=>'site/<action>',
),
),

这在您的 .htaccess 文件中:

RewriteEngine on

如果目录或文件存在,直接使用:

RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d

...否则转发到 index.php:

RewriteRule . index.php

关于php - 在没有路由的情况下执行 Yii 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569146/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com