我正在尝试学习使用Zend Framework,我现在面临以下问题。 我正在从数据库中读取特定帖子的一些信息。我使用Datamapper和Models。
$postMapper = new Application_Model_PostMapper();
$post = new Application_Model_Post();
$details = $postMapper->find($postID, $post);
$this->view->postDetail = $details;
在我的视图中,我使用foreach($ this-> postDetail作为$ value)来阅读所有帖子信息。但我现在想知道,如果我还可以在没有foreach的情况下访问信息。我只需要控制器中的电子邮件地址,就不明白为什么我需要一个foreach。但我怎么能访问这个? Zend_Debug带有以下结果:
array(1) {
[0] => object(Application_Model_Post)#87 (27) {
["_email":protected] => string(10) "test@testmail.com"
这听起来像一个非常愚蠢的问题,但我找不到一种方法来读出控制器内的电子邮件地址。有人可以给我一个暗示吗?
答案 0 :(得分:0)
在Application_Model_Post类中,您将创建一个访问器方法以获取私有值。
所以创建一个像这样的方法。
public function getEmail(){
return $this->_email;
}
老实说,如果您正确使用数据映射器,我认为您已经拥有这些方法。
答案 1 :(得分:0)
当您通过fetchAll从Model / db获取数据时,例如:
$result = $this->fetchAll($select);
你可以
$result->toArray();
//access like array
$result[0]->some_col_1;
$result[0]->some_col_2;
$result[1]->some_col_1;
$result[1]->some_col_2;
...
答案 2 :(得分:0)
其中一个应该有效:
$email = $details['email']; or =$details[0]['email'];
$email = $details->email;