问题标签 [yii-cactiverecord]

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

php - 如何在 Yii 中使用 CGridView 过滤 CActiveRecord 属性?

在 Yii 1.1 应用程序中,我使用CGridView.

目前,模型表的所有列 ( id, type) 甚至即时添加的属性 ( foo, bar) 都会获得一个过滤器输入字段。(附加属性的过滤器不起作用。)

我只想为某些字段 edidtipe. 如何仅启用我需要的过滤器/禁用我不需要的过滤器?

0 投票
1 回答
186 浏览

forms - 如何在 Yii 中为自定义 CActiveRecord 属性设置验证规则?

我正在开发一个带有数据库的 Yii 项目,其中包含一个表,其中几乎所有的数据都以 JSON 格式保存在一个字段中(这很疯狂,但事实就是如此):

此“JSON 字段”data具有以下结构,其中包含图像:

显示它没问题,但现在我想让数据可食用。我的表格如下所示:

有用。但是有多个问题,似乎是由同一件事引起的——他的表单字段没有引用到模型属性/属性:

  1. 当我创建字段foobaz必需public function rules() { return array(array('foo, baz', 'required')); }的( -- 属性$foo已定义)foo时,如愿以偿,但baz会导致“ foo不能为空”错误。所以我不能设置 a data[*]as required

  2. 如果表单无效并重新加载,则所有data[*]字段均为空。

  3. 这些data[*]字段未标记为必填项。

有没有在不改变数据结构的情况下解决这个问题?不会有正确的方法,但也许是一种解决方法。

0 投票
2 回答
633 浏览

mysql - 如何在 Yii 中实现对 ENUM 列的 CGridView 表的过滤?

在 Yii 应用程序中,我将数据显示为表格。我使用CGridView, 为我处理(基于搜索的)数据过滤和排序。有用。

现在我在数据库表中添加了一ENUM列。在网格中,我可以对其进行排序和过滤,但只能按表中的值。嗯,这是有道理的。但是用户实际上并不知道它是如何保存在数据库中的以及如何与标签一起使用(并希望对其进行排序和过滤)。statususer

有没有办法通过自定义标签为ENUMYii 中的数据库表列提供排序和过滤(使用CActiveRecord模型和CGridView生成的数据网格)?


数据库表

User模型

UserController

看法

0 投票
1 回答
134 浏览

drop-down-menu - 如何使 Yii-CActiveForm 不将列表项设置为选中?

在 Yii 应用程序中,我有模型UserExpert( 'expert'=>array(self::BELONGS_TO, 'Expert', 'expert_id'),)。

有一个用于创建/编辑用户数据的表单。现在我想用一个下拉列表来扩展它:

我希望下拉列表永远不要将专家条目作为默认条目。在页面加载时,总是应该“选择”空值。它适用于没有相关专家的用户页面(users表格中的列expert_idNULL)。但是在有专家的用户页面上,用户的专家条目得到selected

无论表/对象关系如何,如何允许CActiveForm对象选择一个antry并显示没有预值的表单?selected

0 投票
2 回答
1613 浏览

mysql - CActiveRecord 按字段为空的属性查找

在 Yii 1.1.* 中,如何找到CActiveRecord属性所在的所有数据(通过实现)NULL,有点像:

不起作用,因为它会产生查询:WHERE (bar = 'baz') AND (qux IN (, ''))

我想查找所有Foo记录where

  • "bar"字段等于"baz"
  • AND qux字段IS NULL或等于空字符串

我可以用 来做findAll,但是如果我想用findAllByAttributes方法呢?谢谢。

0 投票
1 回答
490 浏览

php - 具有自定义值的 CActiveDataProvider

在我的 Yii 项目中,我需要按一些自定义值搜索和排序数据。我有'users'表,我需要每个用户实例都有month_profit属性,该属性应该结合 SQL 数据 + 大量我自己的计算。目前我在我的用户模型中有:

例如,我的用户模型中有一个关系:

假设我的month_profit将是相等的:clients过去 30 天中注册的用户数 * 150。我需要以某种方式将此数据传递给search()并创建 CDbCriteria 以对用户进行排序month_profit。这是真的吗?:) 我应该创建另一个函数来计算所有内容然后传递给search()吗?到目前为止,我所有的尝试都失败了。

0 投票
0 回答
272 浏览

php - Yii 高级搜索不适用于基于关系的特定搜索功能

在我的系统中,我有 3 种类型的用户,AdminSupervisorNormal user。每种类型的用户都有一个主管,主管本身就是另一个用户。
假设我们有两个表,users并且documents关系如下:在此处输入图像描述

这里的documents表格是usersuser_id列与表格相关的。
在我的系统中,我有一个Documents基于登录用户类型的 CGridview 模块。如果登录的用户类型是Admin,那么它会显示表的所有条目document

如果登录的用户类型是Supervisor,那么它将只显示documents表中的那些条目,其中documents.user_id等于 those users.user_id, who users.sp_id = LoggedInUser,如果我不能清楚地表达,对不起。

我可以通过在模型中使用关系在 CGridview 中显示数据Documents

Document模型中我声明了两个自定义函数来返回所需的 DataProvider。那些是:

public function searchByUser($id) { $criteria=new CDbCriteria; $criteria->condition = "user_id=$id"; return new CActiveDataProvider($this, array( 'criteria'=>$criteria, 'sort'=>array( 'defaultOrder'=>'doc_id DESC', ), )); }

在我/documents/admin看来,我 在 CGridview 中使用基于登录用户的 dataProvider

一切正常,除了我的搜索功能不工作。如果我以主管身份登录,则意味着如果我使用:'dataProvider'=>$model->searchBySupervisor(Yii::app()->user->getId()),dataprovider,我的高级搜索选项不会根据搜索参数过滤 gridview,它返回相同的数据。

0 投票
1 回答
22 浏览

php - Yii 1.15 CdbCriteria 增加了自己的排序 - 魔术

碰巧 Yii 隐式地将 ID 排序添加到标准中。

注意代码中的这一行 $criteria->order ='t.id ASC';

我的源代码:

标准转储:

在此处输入图像描述

结果错误:

在此处输入图像描述

如您所见,我没有添加按 ID 排序。Yii 以某种方式完成了它并打破了整个查询。

我已经准备好用纯 MySQL 重写它。

任何想法为什么会这样?

0 投票
1 回答
8161 浏览

php - Yii2 图像尺寸验证

此验证行不起作用。我可以上传任何维度的图像。

在控制器中,我使用。

0 投票
4 回答
126 浏览

php - 在 Yii 框架中使用自定义名称上传图像

我正在尝试从 Yii 框架中的注册表单上传图像。图像将保存在“img/avatar”文件夹中,图像名称应更改为用户名。我用于此的一段代码如下:

问题是:用户名的名称已经保存在数据库的图片行中。但是图像没有上传到文件夹中。我试图找出代码中的问题。但无法解决。有什么建议么?