问题标签 [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 投票
2 回答
2760 浏览

php - 调用未知方法:yii\web\UrlManager::addRules()

我在 Yii 1 工作过,现在尝试使用 Yii2。我已经安装了作曲家,然后安装了基本的应用程序。但是现在当我尝试访问基本应用程序时出现此错误。我该如何解决这个问题?

错误是:

未知方法 – yii\base\UnknownMethodException

调用未知方法:yii\web\UrlManager::addRules()

0 投票
1 回答
293 浏览

yii - Yii 路由规则将关键字重定向到操作的 $_GET 参数

在 Yii 中,是否可以使用路由器规则将 URL 中的关键字“翻译”为某个操作的 $_GET 参数?

我想要的是让这个网址:

http://example.com/MyModule/MyController/index/foo

指向:

http://example.com?r=MyModule/MyController/index&id=12

foo指向哪里12

而且,由于我使用的是“路径”urlFormat,并且正在使用其他 url 规则来隐藏indexand id=,所以上面的 URL 最终应该指向:

http://example.com/MyModule/MyController/12

这可以通过在 urlManager 组件的配置文件中设置规则来实现吗?

0 投票
1 回答
1328 浏览

php - yii 扩展:如何访问位于扩展内部的控制器

我正在尝试为 yii 框架编写自定义扩展,但我无法访问存储在 extensions/controllers 文件夹中的控制器。我进行了很多搜索,但没有找到任何提示。这是结构

我已经完成了加载扩展所需的所有调整,目前我可以使用 $this->renderInternal('views/form.php') 从视图文件夹中显示表单。这样扩展就加载成功了。当我尝试访问扩展文件夹中的控制器时出现问题。

通常,当需要访问 protected/controllers/SiteController.php 中的索引方法时,URL 是http://project.com/index.php/site/index “因此,我应该在表单操作中写什么以便从表单访问 /extensions/controllers/XYZController.php 中的任何方法。

我在 main.php 中添加了这段代码,就像它是在各种建议中编写的一样

配置/main.php 文件

请在这种情况下给我任何提示。提前致谢。

0 投票
2 回答
1146 浏览

php - 如何将参数/下拉值传递给模型函数

我正在使用改进的 yii2 高级模板

不确定是否与问题/解决方案相关,但要进入类别,我有一个带有一些 javascript 的表单,该表单在更改时会将用户重定向到所选类别。

我有以下代码允许我访问该类别 id 中的帖子我去 localhost:8888/advanced/article/category?id=1

目前的问题是,如果我从类别视图中调用模型中的 getCategoryName 函数,则 id 参数不会传递给模型函数,因此在使用 getCategoryName 时默认为运动。

然后在我看来,我使用以下方法在执行模型函数方面起作用,但是我不确定如何将参数/当前类别 ID 传递给模型函数。以下代码适用于单篇文章视图中的 _index &。

这是我的模型功能

0 投票
1 回答
11487 浏览

php - Yii2中的URL路由规则

来自 Laravel 和 Rails 的背景,我发现很难弄清楚 Yii2 规则是如何工作的。

我正在寻找以下 URL 模式:

  • /文章/
  • /文章/查看/
  • /articles/1/我的漂亮文章

ArticlesController定义如下:

到目前为止,我已经尝试过:

我更感兴趣将我的模式重定向到控制器@方法。

0 投票
2 回答
464 浏览

php - 如何在 Yii 中创建没有参数名称的 URL?

我正在使用CGridView来显示数据表:

/application/protected/views/foo/bar.php

这为每行创建了一个包含三个链接的表:viewupdatedelete; 例如(对于view): /index.php/foo/123,其中123是元素的 ID(或主键值)。

现在我想修改小部件调用,以获得不同的按钮链接,例如/index.php/bar/123

我得到的(视图)链接如下所示:/index.php/bar/myid/123-- 请求以404错误结束。

如何在 URL 中建立没有参数名称的链接?


附加信息——我的路由配置/application/protected/config/main.php

0 投票
1 回答
27 浏览

yii - 由用户在 yii 中管理路由

我有一项任务,我真的不知道该怎么做。所以在 Yii Web 应用程序中有一个包含所有操作的表格。所有授权的用户都可以创建自己的链接来指示特定的动作,例如:有动作名称的actionGetAllMovies,用户Sarah设置了她的链接'favouriteMovie',Jack设置了'coolMovie'等......当他们键入他们的链接时,他们重定向到动作 actionGetAllMovies。“教” YII 如何正确阅读此链接?

0 投票
3 回答
316 浏览

php - How to choose the layout of the site according to the username in yii2

I have a project where the user chooses the layout, and saves it in the database, how do I choose to change this layout in real time?

For example; http://www.example.com/username/controller/action/id

Throughout the site I would have with the first parameter the username, which is actually where the system will know which layout it chose.

Can anybody help me?

EDITED

For example; When the user accesses the site I pass the following link: www.example.com/index.php?layout=4545455, so I would be able to know which layout to use, but how do I keep this parameter layout=4545455 on all routes Site? Well if I click on the about menu it will be with the url www.example.com/index.php?r=site/about

0 投票
1 回答
31 浏览

php - Yii 使用模块时的路由问题

我想用我的网址管理器链接那个。关于我的博客详细信息

http://example.com/yii-fremwork-install => 转到博客控制器详细信息方法

其中“yii-fremwork-install”是来自数据库的slug。

我也不会为此编写我的 url 管理器的模块

但是当我想使用我的管理模块时

http://example.com/admin 它去用户/详细信息控制器锄头使用这个

有人可以提出一些想法来解决这个问题。

0 投票
0 回答
489 浏览

apache - yii2路由和htaccess配置

我的项目中有以下目录:

  • 项目
    • 前端:(这是 angularjs 应用程序)
    • 后端:(这是 yii2 高级应用)
      • 后端:
        • 控制器
        • 楷模
        • 意见
        • web:后端的根(index.php)
      • 前端:
        • 控制器
        • 楷模
        • 意见
        • web:前端的根目录(index.php)

我想通过这个 URL 指向后端(yii2 应用程序):http://localhost/Project/backend,而前端(角度)应该是根,即http://localhost/Project。依此类推,我想api通过这个 URL 调用控制器:http://localhost/Project/backend/api

到目前为止我已经尝试过:

.htaccess(项目):

.htaccess(项目/后端):

.htaccess(项目/后端/后端):

Request.php(项目/后端/公共/组件):

main.php(项目/后端/后端/配置):