问题标签 [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.
php - 如何在 Yii 中使用 CGridView 过滤 CActiveRecord 属性?
在 Yii 1.1 应用程序中,我使用CGridView
.
目前,模型表的所有列 ( id
, type
) 甚至即时添加的属性 ( foo
, bar
) 都会获得一个过滤器输入字段。(附加属性的过滤器不起作用。)
我只想为某些字段 edid
和tipe
. 如何仅启用我需要的过滤器/禁用我不需要的过滤器?
forms - 如何在 Yii 中为自定义 CActiveRecord 属性设置验证规则?
我正在开发一个带有数据库的 Yii 项目,其中包含一个表,其中几乎所有的数据都以 JSON 格式保存在一个字段中(这很疯狂,但事实就是如此):
此“JSON 字段”data
具有以下结构,其中包含图像:
显示它没问题,但现在我想让数据可食用。我的表格如下所示:
有用。但是有多个问题,似乎是由同一件事引起的——他的表单字段没有引用到模型属性/属性:
当我创建字段
foo
和baz
必需public function rules() { return array(array('foo, baz', 'required')); }
的( -- 属性$foo
已定义)foo
时,如愿以偿,但baz
会导致“ foo不能为空”错误。所以我不能设置 adata[*]
asrequired
。如果表单无效并重新加载,则所有
data[*]
字段均为空。这些
data[*]
字段未标记为必填项。
有没有在不改变数据结构的情况下解决这个问题?不会有正确的方法,但也许是一种解决方法。
mysql - 如何在 Yii 中实现对 ENUM 列的 CGridView 表的过滤?
在 Yii 应用程序中,我将数据显示为表格。我使用CGridView
, 为我处理(基于搜索的)数据过滤和排序。有用。
现在我在数据库表中添加了一ENUM
列。在网格中,我可以对其进行排序和过滤,但只能按表中的值。嗯,这是有道理的。但是用户实际上并不知道它是如何保存在数据库中的以及如何与标签一起使用(并希望对其进行排序和过滤)。status
user
有没有办法通过自定义标签为ENUM
Yii 中的数据库表列提供排序和过滤(使用CActiveRecord
模型和CGridView
生成的数据网格)?
数据库表
User
模型
UserController
看法
drop-down-menu - 如何使 Yii-CActiveForm 不将列表项设置为选中?
在 Yii 应用程序中,我有模型User
和Expert
( 'expert'=>array(self::BELONGS_TO, 'Expert', 'expert_id'),
)。
有一个用于创建/编辑用户数据的表单。现在我想用一个下拉列表来扩展它:
我希望下拉列表永远不要将专家条目作为默认条目。在页面加载时,总是应该“选择”空值。它适用于没有相关专家的用户页面(users
表格中的列expert_id
是NULL
)。但是在有专家的用户页面上,用户的专家条目得到selected
。
无论表/对象关系如何,如何允许CActiveForm
对象选择一个antry并显示没有预值的表单?selected
mysql - CActiveRecord 按字段为空的属性查找
在 Yii 1.1.* 中,如何找到CActiveRecord
属性所在的所有数据(通过实现)NULL
,有点像:
它不起作用,因为它会产生查询:
WHERE (bar = 'baz') AND (qux IN (, ''))
我想查找所有Foo
记录where
:
"bar"
字段等于"baz"
AND
qux
字段IS NULL
或等于空字符串
我可以用 来做findAll
,但是如果我想用findAllByAttributes
方法呢?谢谢。
php - 具有自定义值的 CActiveDataProvider
在我的 Yii 项目中,我需要按一些自定义值搜索和排序数据。我有'users'
表,我需要每个用户实例都有month_profit
属性,该属性应该结合 SQL 数据 + 大量我自己的计算。目前我在我的用户模型中有:
例如,我的用户模型中有一个关系:
假设我的month_profit
将是相等的:clients
过去 30 天中注册的用户数 * 150。我需要以某种方式将此数据传递给search()
并创建 CDbCriteria 以对用户进行排序month_profit
。这是真的吗?:) 我应该创建另一个函数来计算所有内容然后传递给search()
吗?到目前为止,我所有的尝试都失败了。
php - Yii 高级搜索不适用于基于关系的特定搜索功能
在我的系统中,我有 3 种类型的用户,Admin,Supervisor和Normal user。每种类型的用户都有一个主管,主管本身就是另一个用户。
假设我们有两个表,users
并且documents
关系如下:
这里的documents
表格是users
按user_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,它返回相同的数据。
php - Yii2 图像尺寸验证
此验证行不起作用。我可以上传任何维度的图像。
在控制器中,我使用。
php - 在 Yii 框架中使用自定义名称上传图像
我正在尝试从 Yii 框架中的注册表单上传图像。图像将保存在“img/avatar”文件夹中,图像名称应更改为用户名。我用于此的一段代码如下:
问题是:用户名的名称已经保存在数据库的图片行中。但是图像没有上传到文件夹中。我试图找出代码中的问题。但无法解决。有什么建议么?