问题标签 [yii2-model]

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 投票
0 回答
192 浏览

yii2-model - 尝试使用 yii2 非表模型 $model->save() 时出现 yii\base\UnknownMethodException 错误

尝试执行 $model->save(); 时出现 Calling unknown method: app\modules\employee\models\NewEmployeeForm::save() 错误;

我假设 save() 方法是从 Model 继承的,但后来发生了这种情况。我需要编写自己的保存方法吗?我想遵循yii2的做事方式。

下面是我的模型

提前致谢

0 投票
5 回答
337 浏览

yii - 将 Yii 转换为 Yii 2.0:getRestParams()

从 Yii 到 Yii 2.0 如何写这行代码:

Yii::app()->getRequest()->getRestParams()?

0 投票
3 回答
5375 浏览

yii2 - Yii2:我可以使用场景为不同的动作指定不同的模型字段集吗?

我可以在 Yii2 模型页面(http://www.yiiframework.com/doc-2.0/yii-base-model.html)中看到,在“字段”部分,您可以设置“基于某些字段的不同列表上下文信息。例如,根据 $scenario 或当前应用程序用户的权限,您可能会返回不同的可见字段集或过滤掉某些字段。

但是,场景文档(http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios)说场景是为模型属性验证创建不同的上下文。

我正在使用 Yii2 Restful API,我必须使用默认操作(actionIndex、actionView、...)从模型中获取数据并显示为 API 结果。我知道我可以覆盖这些方法(http://www.yiiframework.com/doc-2.0/guide-rest-controllers.html#extending-active-controller),但我怎么能在这些方法中使用不同的集合字段(取决于不同的场景)?

我需要为actionIndex(项目列表)输出field1、field2、field3,但我想为actionView(项目列表)输出field1、field2、field3、field4。

0 投票
1 回答
876 浏览

php - Yii2 Gridview 按权限过滤

我有一个超级管理员,可以创建用户并为每个用户分配特定的位置。这存储在一个简单的表中,我们在其中获取用户的 ID 和位置的 ID。

然后,我有一张客户表。每个客户端还有一个名为 loc_id 的位置。如何过滤,以便在 Gridview 中用户只能看到居住在用户有权查看的位置的客户端(用户是一种可以在其管辖范围内操作客户端数据的管理员)?

我通过

然后找到他可以查看的位置

但是现在如何将它应用到具有搜索模型和 DataProvider 的标准 Gridview,以便我仍然可以按其他属性对 GridView 进行过滤和排序?

0 投票
1 回答
1045 浏览

sql - Yii2 activerecord 意外结果,with() 回调函数有限制

我在使用 Yii2 构建查询时遇到问题。

假设我们有四个相关模型:Customer、Order、Orderitem 和 Orderitempicture。

Order与Customer相关,Orderitem与Order相关,Orderitempicture与Orderitem相关。

下面是代码:

这是调试器中执行的语句之一:

现在我的问题出在这一行: $q->select(['id', 'src_thumb', 'orderitem_id'])->orderBy("id desc")->limit(1);

我正在尝试为每个订单项获取一个订单项图片,但是,发生的情况是获取订单项图片的 SQL 被合并到一个语句中,并且限制应用于该语句,所以结果是我只得到一个订单项图片一个订单项,其余的我一无所获。

如何为每个父母设置一个孩子的限制?有没有办法告诉 Yii 为父项中的每条记录创建多个查询并设置限制而不是创建一个查询?

0 投票
1 回答
2377 浏览

yii2 - 将布尔值设为 true 或 false 而不是 1 或 0

我使用的是 MySql 数据库,所以我在 db 模式中将列类型定义为 Tinyint(1)。

在我的 ActiveRecord 中,我设置了布尔验证器。保存逻辑按预期工作。

我现在想要的是,当我调用 Yii2 REST 服务时,返回布尔字段为 true 或 false 而不是 1 或 0,因为在客户端,框架带有严格的比较 (===) 并且 1 与 true 不同。

当然,我可以在发送内容之前手动覆盖该值,或者在将其加载到模型中之前在客户端覆盖该值,但我希望有一个更简洁的解决方案。

0 投票
2 回答
590 浏览

activerecord - yii2 通过关系列获取活动记录

我需要选择具有相关 AR 和特定列值的 ActiveRecord

情况:“用户”可能有许多“分支” - 通过联结表,并且分支与部门相关。我有department_id,并且我想选择拥有来自这个部门的分支机构的用户。

部门:

分支:

问题是,我不想以任何方式从 Department 访问它(例如 $department->getUsers()....),但我想在ActiveQuery.

所以我可以选择像这样的用户:

先感谢您 !

0 投票
1 回答
10094 浏览

transactions - Yii2 中带有回调的 Db 事务

我有在 Yii2 中使用 DB 事务的简单代码,这会更新用户余额并在用户余额历史记录中添加一条新记录。

我应该经常使用数据库事务来保存数据完整性。但是像上面这样处理数据库事务需要很多代码行,所以我创建了以下函数来调动我的代码:

使用此功能,我可以处理如下事务:

如您所见,第二种方式使用事务非常舒适。但是在这一点上,我不确定该dbTransaction功能是否正常工作?代码审查并指出哪些点潜在问题值得赞赏。谢谢

0 投票
3 回答
21230 浏览

yii2 - Yii2 从相关模型中仅选择几列

在控制器中我有:

在 WarehouseItem 模型中,我有标准(由 gii 创建)关系声明:

如何控制从“用户”关系中获取哪些列数据?我目前得到所有不好的列,因为这些数据以 JSON 格式发送到 Angular。现在我必须循环遍历 $items 并过滤掉我不想发送的所有列。

0 投票
1 回答
588 浏览

yii2 - Yii2如何对表进行分区?

一个名为 demo 的表,现在需要像 demo1,demo2,demo3,....,demo10 一样对其进行分区

那么如何在 Yii2 上对表进行分区呢?

我可能知道应该在 Model.getTableName 中添加一个方法。