Chave estrangeira múltipla para a mesma tabela Gas Orm
Desde esta manhã, estou enfrentando um grande problema. Estou usando o CodeIgniter para desenvolver um site e o GAS ORM para o banco de dados. Eu tenho basicamente duas mesas. Um chamado "pool" e outro chamado "partners". Estou tendo duas associações entre essas duas tabelas, portanto, tenho duas chaves estrangeiras na minha tabela Partners referenciando o pool de tabelas.
Pool (#id: número inteiro, nome: varchar) Parceiros (#id: número inteiro, associado_pool_id => Pool, futur_associated_pool_id => Pool).
Como tenho duas referências à mesma tabela, não posso nomear as chaves estrangeiras "pool_id". Portanto, em meus relacionamentos com o Gas ORM, tenho que especificar os nomes das colunas. Eu faço, mas não funciona ... Aqui está o que eu faço:
class Partner extends ORM {
public $primary_key = 'id';
public $foreign_key = array('\\Model\\Pool' => 'associated_pool_id', '\\Model\\Pool' => 'future_associated_pool_id');
function _init()
{
// Relationship definition
self::$relationships = array(
'associated_pool' => ORM::belongs_to('\\Model\\Pool'),
'future_association_pool' => ORM::belongs_to('\\Model\\Pool'),
);
self::$fields = array(
'id' => ORM::field('auto[11]'),
'name' => ORM::field('char[255]'),
'associated_pool_id' => ORM::field('int[11]'),
'future_associated_pool_id' => ORM::field('int[11]')
);
}
e na minha classe Pool:
class Pool extends ORM {
public $primary_key = 'id';
function _init()
{
// Relationship definition
self::$relationships = array(
'associated_partner' => ORM::has_many('\\Model\\Partner'),
'future_associated_partner' => ORM::has_many('\\Model\\Partner'),
);
self::$fields = array(
'id' => ORM::field('auto[11]'),
'name' => ORM::field('char[50]'),
);
}
Eu tenho um controlador de teste testando se está tudo bem:
class Welcome extends CI_Controller {
public function index()
{
$pool = \Model\Pool::find(1);
echo $pool->name;
$partners = $pool->associated_partner();
var_dump($partners);
}
Mas eu tenho um erro dizendo:
Número do erro: 1054
Champ 'partner.pool_id' inconnu dans where cláusula
SELECIONE DEpartner
ONDEpartner
.pool_id
EM 1)
Eu não sei como especificar para Gas ORM que não deve levar "pool_id", mas "Associated_pool_id" ....
Obrigado pela ajuda!!!!!!!!!!!!