0
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(),

  );
4

1 に答える 1

0

発生するエラーは非常に明確です。表示されるエラーメッセージを常に読んで理解する必要があります。これにより、一般的な問題のほとんどが解決されます。したがって、常に、表示されるエラーメッセージを読んで理解する習慣をつけてください。ここ、

Notice: Undefined variable: entryMessage in /var/www/Employee/application/models/EmployeeMapper.php on line 34

未定義の変数であることに注意してください。これは、変数$entryMessageが定義されていないことを意味します。そして、あなたが得ているエラーの2番目の部分:

Fatal error: Call to a member function setEmployeeId() on a non-object in /var/www/Employee/application/models/EmployeeMapper.php on line 34

setEmployeeId()定義されていない関数を呼び出そうとして$entryMessageいるので、それはオブジェクトであると想定し、オブジェクトとして使用しているので、非常に明白です。

私は$entryMessageあなたが使用しているはずだったと思います$entry

これらは非常に単純であり、実際にSOで尋ねるのには適していません。

もう一度、あなたへの私の提案は、

  • エラーメッセージの内容を常に読んでください。これは、コードのバグをデバッグするために使用することになっているものです。
  • プログラミングに不慣れな場合は、おそらくIDE(netbeans、eclipseなど)を使用する必要があります。これは、コード内の変数と関数の使用法および構文エラーを実際に示しています。
  • 常に調査の一部を行い、見つからないか成功しなかった場合にのみ質問し、試みたことを常に示してください。他の人はあなたを助けるためにそこにいますが、あなたのためにすべてを解決するわけではありません。:)
于 2013-03-24T03:29:19.787 に答える