问题标签 [cactivedataprovider]

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 回答
586 浏览

php - Yii1 CGridView(Yii-Booster):如何更改 TbGridView 中的过滤键(filterVal)(基于 CGridView)?

我正在使用 yii-booster(4.0.1) TbGridView(extends CGridView) 并且需要更改 _REQUEST($_POST, $_GET) 中的过滤器变量名称以获得过滤器功能。在我的网格中,我有过滤器功能,当我在过滤器输入中输入一些单词后按 Enter 键时,将为服务器发送一个 ajax 请求。在 $_REQUEST 的这个请求中,我有:

我的问题是如何在 CGridView 创建的请求中更改wsi_it_model_Asset。我知道在创建 dataProvider 时应该通过CActiveDataProvider中的参数来完成,但我找不到它。

提前致谢。

更新 1 月 24 日
我从另一个项目中找到了我的代码,如您所见,我可以更改keyforsortpagination,我需要看起来像过滤键的东西;

因此,对于分页,从客户端发布到服务器的请求将是:

0 投票
2 回答
263 浏览

php - Yii2-activedataprovider 不获取数据

我使用一些$query->andFilterWhere(...)来创建我的查询。

并且可以通过以下方式查看最终查询echo $query->createCommand()->rawSql;

当我复制最终查询并将其传递到 phpmyadmin 时,获取了 2 条记录,但在 ActiveDataProvider 中找不到结果。

我错过的重点在哪里?!

============================================

这是我的代码:

0 投票
1 回答
332 浏览

php - Yii 1:CActiveDataProvider 不返回所有记录

这是我的 CActiveDataProvider 查询。

这给了我 0 行。但是当我在 mysql 中使用相同的查询时,它会给我正确的结果。以下是相同的mysql查询

我尝试在 CActiveDataProvider 中将分页设置为 1000,但这不起作用。

即使我将分页设置为false但仍然没有结果

0 投票
1 回答
118 浏览

php - 如何在 YII 的 CDbCriteria 中获取连接属性?

在公司模型中,我加入模型用户和业务单元。

有用。但我只获得公司属性。我如何获得属性business_unit以及属性userscompany

0 投票
1 回答
166 浏览

php - CActiveDataProvider 不提供选定的列

它工作正常并获得我选择的所有列。但是当我在 CActiveDataProvider 中传递它时,它只获得this属性。

我如何选择所有列?

0 投票
2 回答
1889 浏览

activerecord - 如何在进行急切加载的 yii2 joinWith() 中使用 WHERE

我有桌子:documentdocument_contentOne文档可以有many内容。

我正在使用joinWith()方法从document_content表中获取数据以及document使用模型关系。

执行的查询如下:

SELECT document.* FROM document INNER JOIN document_content ON document.id = document_content.document_id WHERE (lang='1') ORDER BY id DESC LIMIT 10

SELECT * FROM document_content WHERE document_id IN (665566, 665034, 664961, 664918, 664910, 664898, 664896, 664893, 664882, 664880)

我对第二个查询有疑问。我希望它包含第一个 WHERE 子句:WHERE (lang='1')

所以我想让 yii 生成这个查询:

SELECT * FROM document_content WHERE (lang='1') AND document_id IN (665566, 665034, 664961, 664918, 664910, 664898, 664896, 664893, 664882, 664880)

我设法以某种方式实现了这一点,但我有代码重复,我不喜欢它。必须有一些更好的方法来做到这一点。这是我的有效代码,但我认为它不是那么好:

如您所见,我正在检查params['lang']两个地方。在我的关系方法和buildDocumentContentQuery()方法中。所以我在两个地方重复相同的代码,而 lang 参数不会是我想要测试的唯一一个,可能有 10 个或更多。

基本上,我必须做所有这些,因为我无法通过 yii2joinWith()方法发送任何参数。我不知道添加WHERE到通过急切加载joinWith(). 我以某种方式使它工作,但我认为这很脏。

有没有人有更好/更清洁的解决方案来解决这个问题?

0 投票
2 回答
1120 浏览

sorting - 如何在 YII 中的 CActiveDataProvider 中进行排序?

我写了这个,但它对视图没有任何影响。

是否需要对视图进行任何更改?

0 投票
1 回答
5568 浏览

php - Yii 1、获取CDbCriteria生成的SQL

遇到问题,我需要在 CGridView 中获取模型的所有 ID(不仅是可见的,而且是所有模型)。为此,我使用它的 DataProvider - 从中​​获取标准并将其传递给命令生成器

在我们通过相关表进行过滤之前,它工作正常。例如,用户将一个数字添加到网格的过滤器 - “House Number” = 24。当它发生时,相关表 - “address”添加到$criteria->with并且“address.home_number = 24”添加到$criteria->condition

ActiveRecord 会自动解析条件的“with”属性并应用连接,所以我们的条件会很好,但 CommandBuilder - 不是。我不能使用 AR,因为它非常慢。我必须使用 Builder,但我无法进行连接,可能应用了 20 多个过滤器。

如果我能得到 AR 生成的 SQL,然后将其传递给 Builder——那就太好了。

0 投票
1 回答
865 浏览

gridview - Yii2:索引和网址更改中的多个模型/控制器

在我的索引中,我需要显示两个未通过任何关系链接的不同表的结果。我已经通过使用两种不同的搜索模型来做到这一点

所以我有两个选项卡,每个选项卡有两个 Gridview,每个选项卡正确显示一个表的结果。

我正在使用一个模块。所以我的路径是module/book/views/book-oldmodule/book/views/book-new 在这些文件夹中,视图的 php 文件是

查看-old.php

查看-new.php

ActionColumn 中使用的按钮和控制器出现问题。我需要一个“选项卡”使用一个控制器(也有不同的链接),另一个使用另一个控制器(总是不同的链接)。

我试过在 ActionColumn 里面

它将“bookold”添加到 url 路径的开头。但这给了我找不到第404页。我也试过

但是 Yii::$app->controller->id 返回相同的默认控制器。我应该如何进行?

简而言之,我需要更改 url 的最后一部分(旧视图和新视图)并更改控制器。我的控制器是这样的:

0 投票
1 回答
66 浏览

php - 易。CActiveDataProvider 和有很多关系

我有两个模型:文档和报告。一份文档可能有 0 个或多个报告。一份报告属于 0 或 1 个文档。

字段 document_id 可以为空。

我想使用 CGridView 小部件显示表格。表包含列“文档名称”和“报告名称”。如果文档没有报告,则只输入“文档名称”并将“报告名称”保留为空白。如果文档有一个或多个报告,则为每个报告放置一行。例子:

当我尝试以这种方式创建 CActiveDataProvider 时:

对于每个文档,我得到 1 行,即使文档有多个报告。

如果我这样做:

缺少 0 个报告的文档。

我怎样才能做到这一点?