Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend框架中映射器代码中的问题_Php_Zend Framework_Zend Db - Fatal编程技术网

Php Zend框架中映射器代码中的问题

Php Zend框架中映射器代码中的问题,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,这是我遇到的错误我尝试显示输入的字段,我检查了数据库并保存了字段,我正在发布员工映射器。请检查代码并告诉解决方案,提前谢谢 Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /va

这是我遇到的错误我尝试显示输入的字段,我检查了数据库并保存了字段,我正在发布员工映射器。请检查代码并告诉解决方案,提前谢谢
Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34 

您得到的错误是非常清楚的,您应该始终阅读并尝试理解您得到的错误消息,它为您提供了大多数常见问题的解决方案。因此,要养成阅读和理解错误信息的习惯。这里,

class Application_Model_EmployeeMapper
 {
 protected $_dbTable;

 public function setDbTable($dbTable)
 {
    if (is_string($dbTable)) {
     $dbTable = new $dbTable();
   }
if (!$dbTable instanceof Zend_Db_Table_Abstract) {
  throw new Exception('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
return $this;
 }

 public function getDbTable()
 {
if (null === $this->_dbTable) {
  $this->setDbTable('Application_Model_DbTable_Employee');
}
return $this->_dbTable;
 }

 public function fetchAll()
  {
   $table = $this->getDbTable();
   $resultSet = $table->fetchAll($table->select()->order('EMPLOYEE_ID'));
   $entries   = array();
    foreach ($resultSet as $row) {
     $entry = new Application_Model_Employee();
      $entryMessage->setEmployeeId($this->$row->EMPLOYEE_ID)
       ->setFirstName($row->FIRST_NAME)
        ->setLastName($row->LAST_NAME)
        ->setEmail($row->EMAIL)
       ->setPhoneNumber($row->PHONE_NUMBER)
    ->setHireDate($row->HIRE_DATE)
    ->setJobId($row->JOB_ID)
    ->setSalary($row->SALARY);
  $entries[] = $entry; 
}
return $entries;
 }

public function save(Application_Model_Employee $employee)
{
  $data = array(
  'EMAIL'          => $employee->getEmail(),
  'FIRST_NAME'     => $employee->getFirstName(),
  'LAST_NAME'      => $employee->getLastName(),
  'PHONE_NUMBER'   => $employee->getPhoneNumber(),
  'HIRE_DATE'      => $employee->getHireDate(),
  'JOB_ID'         => $employee->getJobId(),
  'SALARY'         => $employee->getSalary(),

  );
注意,未定义的变量;这意味着未定义变量
$entryMessage
。以及您得到的错误的第二部分:

Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34 
Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34
这一点非常明显,因为您试图从尚未定义的
$entryMessage
调用
setEmployeeId()
函数,但您假设它是一个对象并将其用作对象

Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34 
我假设您正在使用的
$entryMessage
应该是
$entry

这些都很简单,实际上不适合这样问

再一次,我给你的建议是

Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34 
  • 始终阅读错误消息所说的内容,这是您应该用来调试代码中任何错误的内容
  • 如果你是编程新手,也许应该使用IDE(netbeans, eclipse等),它实际显示了变量和 代码中的函数和语法错误
  • 一定要做你那部分的研究,只有在没有发现或没有成功的情况下才提问,并且一定要展示你的尝试。其他人在那里帮助你,但不是为你解决所有问题。:)
    Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34 
    

ehm,您没有来自类型“EntryMessage”的对象,它被称为$entry?:-)你是对的,谢谢你,我怎么能监督这样一个愚蠢的错误呢?很好,但这些是对你未来的建议。我看到你过去也有类似的问题;这些是非常常见的错误,如果您只需阅读并遵循错误消息和堆栈跟踪,就可以轻松解决。您可能会发现它在将来很有用:)或者使用像Netbeans这样的IDE,在您尝试代码之前,它会告诉您:-)我们在开始时被指示不要使用任何IDE,所以我必须通过终端完成所有操作,这就是为什么我感到困难的原因,谢谢你指导我:-)你能允许我问一个关于数据库访问的问题吗,我会发布这个问题,这是关于链接不起作用的,也就是说,我可以检索和显示记录,但不能更新或删除,哪里可能有错?我已经成功地完成了申请:-)
Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34 Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34