问题标签 [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.

0 投票
2 回答
1373 浏览

sql - 在多个表上进行条件 mysql 连接的最有效方法?(Yii php 框架)

我有五张桌子:

  1. tab_template
  2. 模板组
  3. 团体
  4. 用户组
  5. 用户

Tab_template 使用 template_group 关系表组织成组。使用 user_group 关系表将用户组织成组。组可以是公共的或私有的(使用表中的 tinyint 布尔列)。

我想查询所有 tab_templates 是:

  1. 与用户在同一组中
  2. 或在公共组中

这是我当前的查询:

SELECT * FROM tab_template t
LEFT JOIN template_group
ON template_grouptab_template_id= tid
group
加入template_grouptab_template_id= groupid
LEFT JOIN user_group
ON TRUE
WHERE
groupprivate=0
OR
( template_group. group_id= user_group. group_id
AND
user_group. user_id=2)
分组tid;

它可以工作,而且它本身并不是超级慢,但是我加入 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 来更快。

任何帮助将不胜感激!谢谢

0 投票
9 回答
2722 浏览

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 框架

0 投票
4 回答
4936 浏览

php - yii 框架中的编码标准

是否有任何遵循 yii 框架的编码标准,以及在哪里指定

0 投票
3 回答
6660 浏览

yii - 使用与 CGridView 的关系

我会尽可能清楚地描述问题。

我有activeDataProvider:

然后我使用带有复选框的 CGridView:

然后在菜单模型关系中:

在 Rolesmenus 模型关系中:

因此,我无法访问 $data->roles->can_view 变量,当我 var_dump 所有 $data 对象时,我可以在 _attributes 私有数组中看到这些属性,但我无法通过 CGridView 访问它们。

有任何想法吗??

0 投票
5 回答
19251 浏览

model - 如何强制刷新yii中模型的值

假设我有与 B 相关的模型 A。

当我写:

现在 B 可能会被更改(例如由其他用户更改)。当我写:

它使用 B 的旧值。我应该做什么来强制在 doSomething() 之前刷新 B 的值。

0 投票
2 回答
928 浏览

php - Yii 分页相关数据

在 Yii 中对相关数据进行分页的最佳方式是什么?

例如,我可能有帖子,我想对评论进行分页。

0 投票
2 回答
6687 浏览

activerecord - 将 Yii 中的表单数据获取到 CActiveRecord 模型适用于一个模型,但不适用于另一个模型

我以这种方式收到提交的表格:
$resume->attributes = $_POST['ResumeModel'];
$profile->attributes = $_POST['UserProfile'];

在此之前从相应的表中正确填充了两个 CActiveRecord 模型,它们具有正确的数据和所有内容。
两个模型的数据都存在于 $_POST 上,并由表单修改。
但似乎对属性属性的分配仅适用于 $profile 而不适用于 $resume。
如果我在分配后检查他们的值, $profile 不会从表单中获得编辑。模型的定义中是否有可能导致这种情况的东西?据我所见,两种模型的实现方式相似,
我不明白为什么会发生这种情况,有人知道吗?
谢谢!

0 投票
2 回答
3956 浏览

yii - yii - radioButtonList 和 activeRadioButtonList 之间的区别

在 yii 框架中

radioButtonList 和 activeRadioButtonList 有什么区别?

0 投票
2 回答
8031 浏览

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”

谢谢您的帮助

0 投票
1 回答
5275 浏览

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 填充数据透视表(因此不是名字)

这可能吗,这样做的方法是什么?