php 活动记录 :: 2000、1066,不唯一 table/alias:'category'

php active record :: 2000, 1066, Not unique table/alias: 'category'

我得到 2000, 1066, Not unique table/alias: 'category' 这个错误。我很清楚是什么问题。

我的代码:

static $belongs_to = array(
        array('Parent',
              'foreign_key'=>'parent_id',             
              'class_name'=>'categoryModel',
             ),
        array('gallery','class_name'=>'galleryModel','foreign_key'=>'image_id'),

    );

生成以下查询

SELECT `category`.* FROM `category` INNER JOIN `category` ON(`category`.parent_id = `category`.category_id)

我需要使用 alias 但我不知道如何在 php ActiveRecord[=17] 中使用 alias =]

模型代码是:

<?php

class categoryModel extends appModel
{
    static $table_name = '`category`';  
    static $primary_key = 'category_id';
    static $belongs_to = array(
        array('Parent',
                'foreign_key'=>'parent_id',           
              'class_name'=>'categoryModel',
             // 'conditions' => 'parent.parent_id is null'

            ),
        array('gallery','class_name'=>'galleryModel','foreign_key'=>'image_id'),

    );

    static $has_many = array(
        array('cr','class_name'=>'category_relationModel','foreign_key'=>'category_id')
    );

      static $delegate = array(
            array('name', 'to' => 'parent', 'prefix' => 'parent'));

}

和 appModel 代码:

<?php 
class appModel extends ActiveRecord\Model{
    public $app,$attr;
    public $db_config;

    function __construct(array $attributes=array(), $guard_attributes=true, $instantiating_via_find=false, $new_record=true){
        parent::__construct($attributes, $guard_attributes,$instantiating_via_find, $new_record);
    }


    function __call($key,$value){
        parent::__call($key,$value);
    }

    public function load($data){
        foreach($this->attributes as $attr=>$value){
            if(!isset($this->attr["".$attr])){
                //if(isset($data[$attr])) $this->attr["".$attr] =  $data[$attr];
                if(isset($data[$attr])) $this->attributes["".$attr] =  $data[$attr];
            }
        }
    }
}

我已经完成使用核心代码更改。

变化 Table.php

方法:create_joins($joins)

if (array_key_exists($rel->class_name,$existing_tables))
{   

                        $alias = $value;
                        $existing_tables[$rel->class_name]++;
}else{
                        $existing_tables[$rel->class_name] = true;
                        $alias = NULL; // change this to  $alias = $value; 

}

变化是

if (array_key_exists($rel->class_name,$existing_tables))
{   

                        $alias = $value;
                        $existing_tables[$rel->class_name]++;
}else{
                        $existing_tables[$rel->class_name] = true;
                        $alias = $value; 

}

$value 是关系名