Yii简单关系理解

Yii simple relation understanding


Yii简单关系理解 已获得1个解决方法 2020-08-18 18:08:53 yii

我在理解关系方面有问题.

我有这些表:

Modules
- name (pk)
- status_id (fk references status(id))

Status
- id (pk)
- name

所以在模块中,我声明关系:

public function relations()
{
  return array(
    'status'=>array( self::HAS_ONE, 'Status', 'status_id' ),
  );
}

但是这不起作用,每个状态均为NULL.

Yii执行的查询:

SELECT `t`.`name` AS `t0_c0`, `t`.`status_id` AS `t0_c1`, `t`.`session_limit` AS `t0_c2`, `status`.`id` AS `t1_c0`, `status`.`name` AS `t1_c1` FROM `ss_module` `t`  LEFT OUTER JOIN `ss_module_status` `status` ON (`status`.`id`=`t`.`name`)

+------------+-------+-------+-------+-------+
| t0_c0      | t0_c1 | t0_c2 | t1_c0 | t1_c1 |
+------------+-------+-------+-------+-------+
| digidoc    |     2 |     0 |  NULL | NULL  |
| docusearch |     1 |     2 |  NULL | NULL  |
| printbox   |     2 |     0 |  NULL | NULL  |
+------------+-------+-------+-------+-------+

我有一个问题理解,如果常量适用于关系模型或当前模型,示例 Module HAS_ONE Status 或如果应该 status BELONGS_TO a Module .

请注意, BELONGS_TO 确实有效,所以也许我在回答自己,但我想要一些关于如何更好地理解关系的建议,因为在YII指南的例子中,a user HAS_ONE Profile ,所以它不是与 user HAS_ONE status 相同吗?

http://www.tutorialspoint.com/python/python_cgi_programming.htm

谢谢.


Yii简单关系理解 方法1

您在两个模型中都错误地声明了关系,然后给出了意外的结果.当前,您的代码所做的是从父表 ( Status ) 中选择所有记录,而不管它是否具有子项 ( Module ),反之亦然.

当FK在 Module ,而不是 Status 时,它应该是

Module 归属 Status

Status HAS_ONE Module (这是 HAS_MANY 的特殊情况,其中 Status 最多具有一个 Module )

我了解您的困惑,我认为答案会帮助您理清思路

http://www.tutorialspoint.com/python/python_cgi_programming.htm


.htaccess .net .net-core 2d 3d 3d-printing ab-initio abp abstract-syntax-tree actions-on-google actionscript-3 active-directory activemq activemq-artemis acumatica adobe-xd aframe ag-grid agora.io air airflow ajax akka alert alexa algorithm alignment allure amadeus amazon-cloudformation