【发布时间】:2015-09-25 13:37:19
【问题描述】:
我是 Yii 的新手,实际上问题是,很多时候我都面临着像非对象错误这样的问题。
这是由于关系而发生的。即,例如,我们有两个表,称为患者和设施,要在管理页面中显示数据,我们必须映射这两个表并在那里显示记录。现在,当我们删除任何一条匹配记录的患者表非对象错误的设施 id 时。
我不知道,yii 是否是基于数据库关系创建的,但是 yii 关系通常像左连接一样工作,即使与核心 mysql 概念相比,左连接给出的结果是准确的结果,比如设施表值是 null 而不是值时它们不是匹配的记录。
但是在 yii 的情况下,这不会创建设施数组,即使是空的字段名称,这就是为什么会抛出非对象错误,要解决这些错误,我们有 yii 框架本身的解决方案吗?
否则我有一个想法来解决这个问题,必须找到在 yii 上构建这些连接的文件,而不是空数组,我们可以填充表结构(即字段名称为 null 或空值),然后数据将是显示为空,以便我们修复此类错误。
任何人都可以告诉我必须在哪里找到该文件以及我必须在哪里触摸代码?
提前致谢
例如:
我需要这样的
patient =>
id=>1
name=>venkat
facilityid=> 1
facility=> array(
'id'=>''
'facilityname'=>''
)
代替
patient =>
id=>1
name=>venkat
facilityid=> 1
facility=> array(
)
【问题讨论】:
-
您是否考虑过引入一些简单地检查值是否为空数组的逻辑?例如:
if( empty( $patient->facility ) ) { // do something }?你不应该修改 Yii 的核心。 -
是的,我们可以这样做,但是最好的框架之一在 yii 本身没有解决方案?或者我认为这可能是错误,从开发人员的角度来看,这有些困难。
-
如果我们必须在一个地方更改它会被治愈而不是检查每个文件,如果没问题,请告诉我解决方案。
-
@venkat。解决方案不会在框架中,尽其所能。该框架将关系的对象视图作为 PHP 构造提供(例如 $patient->facility)。是不存在的,任何框架都无法创造价值。确保您正确访问该值取决于您。因此,visevo 的评论是正确的。