как использовать adodb activerecord и orm вместе - PullRequest
1 голос
/ 04 февраля 2012

в моем проекте я хочу использовать adodb orm и adodb activerecord вместе. я хочу, чтобы adodb ORM в свойстве $ db и activerecord в свойстве $ ar, которые я использую оба в моем классе.

это основной класс модели:

class Model {

        public $ar ;

        public $db;

    function __construct() {
        include('Model/adodb/adodb.inc.php');
        $this->db = ADONewConnection($driver);
        $this->db->Connect($server , $username , $password , $database) ;

        include('Model/adodb/adodb-active-record.inc.php');
        $ar = NewADOConnection("$driver://$username:$password@$server/$database");
        $thid->ar = ADOdb_Active_Record::SetDatabaseAdapter($ar);
     }
}

и Стол сообщений класса:

<?php
class Posts extends Model
{
   function getRows()
   {
         $re = $this->db->Execute('SELECT * From posts')    ;
         return $re->GetRows();
   }

   function getTitle()
   {
         $this->ar->load('id = 5');
         return $this->ar->title;
   }
}

в классе Posts функция getRows работает правильно, но функция getTitle не работает.

как я могу использовать их обоих в моем проекте?

1 Ответ

0 голосов
/ 05 февраля 2012

я нахожу ответ. для этого я создаю новый класс, затем расширяется от Adodb_activeRecord:

class Model_ActiveRecord extends ADOdb_Active_Record
{
    function __construct($table = false, $pkeyarr = false, $db = false)
        {
            parent::__construct($table, $pkeyarr, $db);
        }
}

тогда в моей модели конструктора:

$this->ar = new Model_ActiveRecord('posts');
...