问题标签 [yii]
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.
sql - 在多个表上进行条件 mysql 连接的最有效方法?(Yii php 框架)
我有五张桌子:
- tab_template
- 模板组
- 团体
- 用户组
- 用户
Tab_template 使用 template_group 关系表组织成组。使用 user_group 关系表将用户组织成组。组可以是公共的或私有的(使用表中的 tinyint 布尔列)。
我想查询所有 tab_templates 是:
- 与用户在同一组中
- 或在公共组中
这是我当前的查询:
SELECT * FROM tab_template
t
LEFT JOIN template_group
ON template_group
。tab_template_id
= t
。id
左group
加入template_group
。tab_template_id
= group
。id
LEFT JOIN user_group
ON TRUE
WHERE
group
。private
=0
OR
( template_group
. group_id
= user_group
. group_id
AND
user_group
. user_id
=2)
分组t
。id
;
它可以工作,而且它本身并不是超级慢,但是我加入 user_group 表的方式很hacky。
问题是我需要加入 user_group 表进行条件检查,但我只需要在组不是私有的情况下进行条件检查。
我知道我可以将另一个表添加到 FROM 子句 (FROM tab_template
t
, user_group
ug
) 中,而不是第三个 LEFT JOIN 与 ON TRUE 条件...但我不能这样做,因为 Yii 的 ActiveRecord 类与 DcCriteria 一起工作的方式我可以' t 修改语句的那部分。我可以编辑查询的任何其他部分,但不能编辑 FROM 子句。在此处查看 API:http ://www.yiiframework.com/doc/api/CDbCriteria 所以这就是我以我的方式加入 user_group 表的原因。一些 Yii 专家可能能够帮助我解决这个问题,但我不确定我的查询是否会通过 FROMing 表而不是 JOINing 来更快。
任何帮助将不胜感激!谢谢
php - 中等复杂度的 PHP 框架,在 CodeIgniter 和 Yii 之间?
像 CI 这样简单的东西(这意味着强制性的、简单的、最新的文档)。但也具有比 CI 更多的功能。
Yii 有很多特性,但它也更复杂(它迫使你不得不使用很多它的特性)。这意味着向您的 web 应用程序添加一些功能需要三倍的时间,因为您必须找出 Yii 的许多新的小功能。
这有点像 CI 在需要时“让开”,而 Yii 会挡住你的路,如果你不按照它的方式去做,它就会崩溃。
CI 中缺少的功能在这个新的“中级”PHP 框架中会很不错:
- 代码生成(crud)。
- 验证。
- 访问控制。
- 布局。
- 小部件。
- 更容易/自动分页(如 yii)
- 简单的uri参数
Yii 给我带来问题的地方:
就像每个小任务都有一些内置功能(这很好),但是,您必须使用内置功能,否则会发生坏事。(CI 不妨碍你,但做得太多,Yii 有很大帮助,但有时会插手太多,它迫使你筛选它的文档,以便你发现这些功能,如果没有这些功能,你将无法在 CI 或非框架应用程序中完成一项将花费更少四倍的任务)。
中间有什么东西吗?
(ASP.NET MVC 可能是'它',但我不懂语言,所以学习它的努力会比学习 Yii php 框架更大,所以我正在寻找一个PHP 框架)
php - yii 框架中的编码标准
是否有任何遵循 yii 框架的编码标准,以及在哪里指定
yii - 使用与 CGridView 的关系
我会尽可能清楚地描述问题。
我有activeDataProvider:
然后我使用带有复选框的 CGridView:
然后在菜单模型关系中:
在 Rolesmenus 模型关系中:
因此,我无法访问 $data->roles->can_view 变量,当我 var_dump 所有 $data 对象时,我可以在 _attributes 私有数组中看到这些属性,但我无法通过 CGridView 访问它们。
有任何想法吗??
model - 如何强制刷新yii中模型的值
假设我有与 B 相关的模型 A。
当我写:
现在 B 可能会被更改(例如由其他用户更改)。当我写:
它使用 B 的旧值。我应该做什么来强制在 doSomething() 之前刷新 B 的值。
php - Yii 分页相关数据
在 Yii 中对相关数据进行分页的最佳方式是什么?
例如,我可能有帖子,我想对评论进行分页。
activerecord - 将 Yii 中的表单数据获取到 CActiveRecord 模型适用于一个模型,但不适用于另一个模型
我以这种方式收到提交的表格:
$resume->attributes = $_POST['ResumeModel'];
$profile->attributes = $_POST['UserProfile'];
在此之前从相应的表中正确填充了两个 CActiveRecord 模型,它们具有正确的数据和所有内容。
两个模型的数据都存在于 $_POST 上,并由表单修改。
但似乎对属性属性的分配仅适用于 $profile 而不适用于 $resume。
如果我在分配后检查他们的值, $profile 不会从表单中获得编辑。模型的定义中是否有可能导致这种情况的东西?据我所见,两种模型的实现方式相似,
我不明白为什么会发生这种情况,有人知道吗?
谢谢!
yii - yii - radioButtonList 和 activeRadioButtonList 之间的区别
在 yii 框架中
radioButtonList 和 activeRadioButtonList 有什么区别?
php - yii - 使用关系 HAS_ONE 从相关表中获取数据以显示在列表页面中
我有两张桌子
大(id,bigs_name,smallid),
小(id,smallguys_name)
因此有两种型号 - 大的和小的
我在大模型中使用了以下关系,(我希望这个关系是正确的)
默认情况下,actionIndex 被创建为
在 _view.php 中,我想显示“smallguys_name”来代替默认显示的“smallid”。那是在普通的 php 中,我会采用“smallid”并从“small”中选择更正的行。我如何在 yii 中做到这一点?
我在 _view.php 中有这个 -
输出 - 'big' 的 id
我试过这个 -
我得到以下 CDbException
未找到列:1054“where 子句”中的未知列“has_small.smallid”
谢谢您的帮助
php - yiiadmin - yii-framework 管理界面中的多对多
我目前正在扩展 yii-s 管理扩展,yiiadmin。
在模型创建视图中获取列表框多选字段的最简单方法是什么,它将显示多对多关系,例如我有一个包含这些文章类别关系的“数据透视表”以及文章和类别表。
我已经在模型中定义了这些关系,我什至设法将一些其他关系放入列表视图,例如通过 Article 表中的 author_id 字段获取的 Author.name。
现在,我希望文章创建表单包含多个选择列表框,该列表框会自动将文章所属类别的多个选择保存到此数据透视表中。
因此,这些将是一篇文章提交到 article_category 数据透视表的多个条目/行。
同时,Article 表本身不包含任何引用类别的字段。因此,数据透视表获取文章的 id 属性并将其与类别(另一个模型/表)的 id 连接起来,并从中生成一行。
因此,例如,我有这些表/模型:
文章 >>> id | 标题 | 作者 | 文本
分类 >>> id | 姓名 | 描述
文章分类 >>> id | article_id | 类别ID
我想用来自 yiiadmin 的文章创建视图/表单的多个选择列表框中的多行填充第三个数据透视表(通常只通过一次提交)。
我还想自动将类别表中的 category.name 呈现到此列表框中,与类别 id-s 适当相关,以便我可以显示类别表中的名称,并通过选择和提交使用类别的 id-s 填充数据透视表(因此不是名字)
这可能吗,这样做的方法是什么?