Как использовать несколько $ _name, используя extends Zend_Db_Table_Abstract в работе Zend Frame - PullRequest
0 голосов
/ 08 апреля 2010

мы пытались сделать так, но это показывает некоторые ошибки. Наши имена таблиц - это пользователи и сообщения.

<?php

class Application_Model_childconnect1 extends Zend_Db_Table_Abstract
{
    protected $_name = 'users';

    public function loginvalidation($username,$pwd)
    {


        $row = $this->fetchRow('UserName = \'' . $username . '\'and UserPW = \''. $pwd . '\'');
        if (!$row)
        {
            $msg="invalid";
            return $msg;
        }
        else
        {
            return $row->toArray();
        }

    }

    protected $_name = 'messages';

     public function replymessage($message)
      {

        $data=array(
            'MessageText'=>$message
              );
        $this->insert($data);
      }


}

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Zend_Db_Table представляет собой шлюз табличных данных , который по определению равен

Объект, который действует как шлюз к таблице базы данных. Один экземпляр обрабатывает все строки в таблице.

, что, в свою очередь, означает, что у вас есть один класс на таблицу, и вы не можете иметь несколько имен на класс. См. Справочное руководство Zend Framework, чтобы узнать, как правильно его использовать:

0 голосов
/ 09 апреля 2010

Несмотря на то, что вы можете настроить приложение так же, как вы, вы можете использовать Zend Auth для обработки аутентификации.

Кроме того, если вы собираетесь использовать ZF в целом, то использование класса Zend_Db_Select может быть полезным.

<?php
public function loginvalidation($username,$pwd)
{
  $s = $this->select();
  $s->where('UserNmae = ?',$username)
  $s->where('UserPW = ?',$pwd);

  $rowset = $this->fetchall($s);
  if(count($rowset) == 1)
  {
   return $row->current()->toArray();
  } else {
   return "Invalid"
  }
}

Если вы действительно хотите генерировать SQL вручную, вы также можете это сделать. Просто используйте метод query объекта Zend_Db_Adapter .

<?php
public function loginvalidation($username,$pwd)
{
  $rowset = $this->getAdapter()->query('UserName = \'' . $username . '\'and UserPW = \''. $pwd . '\'');
  if(count($rowset) == 1)
  {
   return $row->current()->toArray();
  } else {
   return "Invalid"
  }
}
...