MVC框架中可捕获的致命错误


Catchable fatal error in MVC framework

我正在尝试为我的PHP脚本设置一个简单的MVC框架。型号("会议"):

  public function getConferenceLogs($pin){
    $stmt_conferences = $this->db->prepare(
      'SELECT
      date_created,
      timediff(date_completed, date_created) AS duration,
      RecordURL,
      conference_sid
      FROM
      conference
      WHERE
      pin=:pin');
    $stmt_conferences->bindParam(':pin', $pin);
    $stmt_conferences->execute();
    $count =  $stmt_conferences->rowCount();
    if ($count !== 0) {
      $row = $stmt_conferences->fetch();
      return $row;
    }
    return false;
  }

控制器:

function conference_history() 
{        
    Auth::handleLogin();
    $this->loadModel('conference');
    $row = $this->model->getConferenceLogs(Session::get('user_pin'));
    $this->view->row = $row;
    $participant = $this->model->getParticipantLogs(Session::get('user_pin'));
    $this->view->participant = $participant;
    $this->view->render('account/conference_history');
}

视图:

<?php 
 var_dump($this->row);    
?>

我知道当在MVC框架之外以传统格式执行时,模型中的这个查询应该至少返回7条记录(https://stackoverflow.com/a/20275597/2429989)

但是,var_dump($this->行)会给出以下结果:

object(stdClass)[5]
  public 'date_created' => string '2013-10-29 19:20:37' (length=19)
  public 'duration' => string '00:03:42' (length=8)
  public 'RecordURL' => string '' (length=0)
  public 'conference_sid' => string '1c540158-40cf-11e3-b4cc-81e296145de2' (length=36)

我认为这意味着只有一个记录?我想显示所有7条记录;我设置的查询是错误的,还是我的echo语句?我想显示每个属性的所有7条记录(例如,打印$this->row->date_created)。

查看var_dump,$this->行只是一个对象,不能强制转换为字符串。因此,您需要访问公共属性,例如:

<?php
print $this->row->date_created;
...//repeat as needed
?>

或者,如果在某种集合中有多个行对象

<?php
foreach($this->row_collection->row as $row){
    print $row->date_created;
...//blah blah blah
}