问题标签 [yii-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1102 浏览

yii - Yii createUrl 用于带有 slug url 的多语言网站

我已按照指南创建符合 SEO 的多语言 url,现在我需要使用 slug url 为一些模块设置 url 规则。

使用的规则在读取 url 时工作正常,即像这样编写 url

www.mywebsite.com/en/pages/hello-world

(它加载正确的页面)。

但是使用 createUrl 函数,它仅在 slug 不包含任何破折号时返回一个有效的 url,即使用 slug "hello" createUrl 返回

www.mywebsite.com/en/pages/hello

但是使用 slug "hello-world" createUrl 返回

www.mywebsite.com/pages/hello-world/language/en

这是使用的规则:

我以这种方式调用 createUrl:

我不知道出了什么问题...

0 投票
1 回答
633 浏览

php - Yii - 动态加载控制器

我在 Yii 框架上玩得很好,现在我想更深入一点,我想做的是设置一个应用程序,其中几个不同的 URL 将指向同一个控制器。

通常 domain.com/content 将指向 MVC 中的标准类 ContentController。

我想要做的是设置三个控制器(可能更多,但这会启动),即 ArticlesController、DisplayController 和 SplashController。

然后,我将为客户端设置本质上是 CMS,他们将能够创建任意数量的页面并将它们指向上述三个控制器,我已经设置它们来处理数据。

例如,我的客户可以设置以下页面:新闻、通知、技术并将它们都指向 ArticlesController,并且还设置页面:管理、特价、支持并将它们都指向 DisplayController。

我知道所有这些控制器都可以使用 Gii 模块创建,但在这种情况下它不是一个选项,因为我认为这不适合非技术人员。

我只是希望我的客户能够登录到 CMS,决定他要创建一个名为“randompage”的新页面,使用下拉菜单将其指向 ArticlesController,然后为它写一堆文章,现在有了这些可在 domain.com/randompage/article-1 domain.com/randompage/article-2 访问的文章

使用将指向站点/错误的标准设置,因为没有控制器 RandompageController

到目前为止我所做的是在 Controller 类中创建一个构造函数,我可以在其中覆盖控制器 ID

如果我签入 CController 类,$this->_id = 文章、显示或启动但应用程序本身仍会加载站点/错误

我猜我必须在其他地方设置/覆盖控制器。我努力了

但这没有任何效果

也许 Yii 已经设置好,并且必须为每个 URL 要求一个特定的控制器,但这意味着为客户开发相当严格的解决方案,并要求他们每次想要添加新控制器时都调用开发人员。

希望我已经解释了我正在努力做好的事情。

0 投票
2 回答
2305 浏览

yii - Yii框架中如何编写URL规则?

我有一个链接

论坛/线程/2

在我的 urlManager 规则中'thread/<id:\d+>' => 'forum/thread',

如何更改规则和方法createUrl?

进入网址

forum/any-value/thread/2 或 forum/php-for-newbies/thread/2

对不起我的英语,非常感谢

0 投票
1 回答
93 浏览

php - 在 yii 中制作一个控制器 indexcontroller

我打算在 yii 上做一个博客。我有一个名为 article 的表,其对应的模型、视图、控制器是使用 gii 生成的。我希望帖子显示在主页中,所以我设置

虽然帖子显示在主页上,但当我点击阅读更多的标题时,网址中仍然有控制器名称,如

所以我希望 url 变成这样:

我想在我的 URL 中隐藏控制器名称。

实现它的常规方法是什么?

我想让 url seo 友好,所以我使用了以下规则:

现在在 ArticleController 的 loadmodel() 中,我希望更改 findByPk($id) 以使用年、月和唯一的虚 url 获取数据。所以我会得到像 www.yiisite.com/2013/07/vanity-url-article 这样的网址。

这种方法没问题吧?

0 投票
1 回答
148 浏览

php - 在 Yii 框架中将文件更改为正确的 URL

我的 yii 应用程序的索引路径是“site.com/www/index.php”。如何编写 htaccess 文件以通过 url: "site.com" 打开我的应用程序?

0 投票
1 回答
999 浏览

php - 使用多个模块时的 Yii 路由

我们最近重新安装了我们的生产服务器,在那里我们有一个运行多个模块的 Yii 项目。在重新安装之前,路由部分运行良好。我们多次检查 Nginx 配置是否有问题,但一切看起来都不错,实际上我们从旧服务器复制了工作配置。

问题是,每个请求(在任何子域上)都会导致 CHttpException:Unable to resolve the request "default/site/index".即使我们调用任何控制器或其他任何东西。

我打开了一个新的子域(没有指定规则),只是为了测试,它也重定向到这个错误。(即使我们在没有最后两条规则的情况下尝试过)

Yii 的路由规则如下:(print_r 的结果)

所有 Nginx 配置如下所示:

yii-rules.conf文件具有共同的规则,例如:(我只复制可以有所作为的内容)

我们没有什么可能导致此错误的想法,可能只是我们没有注意到的一个小问题:\

这个错误不会对我们的日志产生任何影响(当然只有访问日志)并且 yii 访问日志只是在写入,我们可以在浏览器中看到:“无法解决...”

我们应该如何改变我们的配置或规则列表来避免这个错误?

0 投票
3 回答
138 浏览

php - 渲染 yii 视图时出错

以下 URL 部分在我的 Windows WAMP 机器(使用 AMPPS 运行)上按预期工作,但在 Linux 生产主机上失败:

index.php?r=customchocolates/index

我收到以下错误:无法解析请求“customchocolates/index”

在 Windows 上,我在所有相关文件中都遵循了 CustomChocolates 的命名约定。但是,在网上搜索后,我将以下文件更改为:控制器:customChocolatesController.php 模型:customChocolates.php 视图目录:customChocolates

我还将所有类名更新为新名称,但仍然出现错误。

0 投票
1 回答
612 浏览

php - Yii dataProvider 主题 main.php

在我的 SiteController.php

在我的主题/k/views/layout/main.php

出现这个错误:未定义变量:dataProvider2

如果我在我的 main.php 中这样做:

到目前为止效果很好。但是如果我去用户配置文件:

未定义属性“Domain.username”。

所以在我的 User _view.php 中 Yii 似乎采用了 Domain Dataprovider。

如何将这些 dataProviders 传递到我的布局 main.php 文件? SiteController.php 似乎没有做到这一点。

如果有人在这里有想法,那就太好了。先谢谢了。

0 投票
2 回答
133 浏览

php - Yii 无法路由模块的 url

我有一个 Yii 项目,有一些模块。其中之一称为facebook。我们将使用它来管理我们的 facebook 应用程序,但我在路由方面遇到了一些问题。

我保存了以下路线,它只在没有额外参数的情况下工作:

所以这很好用,直到我尝试向 URL 添加一些参数。使用参数,它只能以这种格式工作:

这是一个大问题,因为它们是不同的域,即使它们使用的是同一个应用程序。所以 Facebook 只允许我们使用这个,如果我允许使用这个主域,我觉得不安全。

有谁知道,这个问题的根源是什么?

0 投票
0 回答
65 浏览

php - 如何访问控制器中的操作

我有一个默认控制器SiteController,其中包含一些名称actions,例如:

当我在浏览器中打开我的网站时:localhost/lucky

index操作正常工作。

index.php (视图)我做了一个链接:echo CHtml::link('About Company', array('site/aboutcompany));

当我点击链接时出现错误:

索引外,所有操作(站点控制器)均无效

请建议我解决方案。

这是控制器代码:

这是配置代码