2010-08-05 56 views
2

加载模型后,我得到数据的唯一方法似乎非常难看。你如何从模型中获得价值?

$this->User->read(NULL, 49); 
print $this->User->data['User']['email']; 

大多数框架在访问等的好得多方式

$User = new Model_User(49); 
print $User->email; 

反正有没有做到这一点在CakePHP的1.2/3?

回答

1

如果你正在寻找一个更安全型的方式来做到这一点,可惜没有。所有的模型访问都基于数组结构,是令我对Cake感到沮丧的事情之一。

+0

无赖。我注意到它也强制所有相关结构一次加载,而不是使用延迟加载模型关系... – Xeoncross 2010-08-05 20:20:51

+0

@Xeoncross:这听起来像这将是不可改变的行为,这是简单的和简单的错误。开发者可以明确地控制所获取的关联数据。 fyi bindModel,unbindModel,可容纳的行为。 – benjamin 2010-08-06 08:13:54

1

正常的情况是,当你从分配这 - 结果>读给一个变量即:

$user = $this->User->read(NULL, 49); 
print $user['User']['email']; 
+0

哦我的,\ * shiver * – Xeoncross 2010-08-05 20:22:39

+0

除了我的评论 - 返回的数据也可能包含用户模型的最接近的关系。即$ user ['Profile']或$ user ['Activty']等 – 2010-08-06 11:14:32