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 是关系名
我得到 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 是关系名