问题标签 [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.
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 日
我从另一个项目中找到了我的代码,如您所见,我可以更改key
forsort
和pagination
,我需要看起来像过滤键的东西;
因此,对于分页,从客户端发布到服务器的请求将是:
php - Yii2-activedataprovider 不获取数据
我使用一些$query->andFilterWhere(...)
来创建我的查询。
并且可以通过以下方式查看最终查询echo $query->createCommand()->rawSql;
当我复制最终查询并将其传递到 phpmyadmin 时,获取了 2 条记录,但在 ActiveDataProvider 中找不到结果。
我错过的重点在哪里?!
============================================
这是我的代码:
php - Yii 1:CActiveDataProvider 不返回所有记录
这是我的 CActiveDataProvider 查询。
这给了我 0 行。但是当我在 mysql 中使用相同的查询时,它会给我正确的结果。以下是相同的mysql查询
我尝试在 CActiveDataProvider 中将分页设置为 1000,但这不起作用。
即使我将分页设置为false
但仍然没有结果
php - 如何在 YII 的 CDbCriteria 中获取连接属性?
在公司模型中,我加入模型用户和业务单元。
有用。但我只获得公司属性。我如何获得属性business_unit
以及属性users
company
php - CActiveDataProvider 不提供选定的列
它工作正常并获得我选择的所有列。但是当我在 CActiveDataProvider 中传递它时,它只获得this
属性。
我如何选择所有列?
activerecord - 如何在进行急切加载的 yii2 joinWith() 中使用 WHERE
我有桌子:document
和document_content
。One
文档可以有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()
. 我以某种方式使它工作,但我认为这很脏。
有没有人有更好/更清洁的解决方案来解决这个问题?
sorting - 如何在 YII 中的 CActiveDataProvider 中进行排序?
我写了这个,但它对视图没有任何影响。
是否需要对视图进行任何更改?
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——那就太好了。
gridview - Yii2:索引和网址更改中的多个模型/控制器
在我的索引中,我需要显示两个未通过任何关系链接的不同表的结果。我已经通过使用两种不同的搜索模型来做到这一点
所以我有两个选项卡,每个选项卡有两个 Gridview,每个选项卡正确显示一个表的结果。
我正在使用一个模块。所以我的路径是module/book/views/book-old和module/book/views/book-new 在这些文件夹中,视图的 php 文件是
查看-old.php
和
查看-new.php
ActionColumn 中使用的按钮和控制器出现问题。我需要一个“选项卡”使用一个控制器(也有不同的链接),另一个使用另一个控制器(总是不同的链接)。
我试过在 ActionColumn 里面
它将“bookold”添加到 url 路径的开头。但这给了我找不到第404页。我也试过
但是 Yii::$app->controller->id 返回相同的默认控制器。我应该如何进行?
简而言之,我需要更改 url 的最后一部分(旧视图和新视图)并更改控制器。我的控制器是这样的:
php - 易。CActiveDataProvider 和有很多关系
我有两个模型:文档和报告。一份文档可能有 0 个或多个报告。一份报告属于 0 或 1 个文档。
字段 document_id 可以为空。
我想使用 CGridView 小部件显示表格。表包含列“文档名称”和“报告名称”。如果文档没有报告,则只输入“文档名称”并将“报告名称”保留为空白。如果文档有一个或多个报告,则为每个报告放置一行。例子:
当我尝试以这种方式创建 CActiveDataProvider 时:
对于每个文档,我得到 1 行,即使文档有多个报告。
如果我这样做:
缺少 0 个报告的文档。
我怎样才能做到这一点?