php - CodeIgniter DataMapper Unable To Relate tree tables -
i have tree tables:
create table `bairros` ( `id` int(11) unsigned not null auto_increment, `cidade_id` int(11) unsigned null default null, primary key (`id`), index `fk_bairros_cidades` (`cidade_id`), constraint `fk_bairros_cidades` foreign key (`cidade_id`) references `cidades` (`id`) ) create table `cidades` ( `id` int(11) unsigned not null auto_increment, `estado_id` tinyint(4) unsigned null default null, primary key (`id`), index `fk_cidades_estados` (`estado_id`), constraint `fk_cidades_estados` foreign key (`estado_id`) references `estados` (`id`) ) create table `estados` ( `id` tinyint(4) unsigned not null auto_increment, primary key (`id`) )
in bairros class have function:
public function get_by_id($bairro_id) { $bairro = new bairro(); $bairro->include_related('cidade'); $bairro->include_related('estado'); return $bairro->get_by_id($bairro_id); }
in models have:
bairro model:
var $has_one = array( 'cidade' => array( 'class' => 'cidade', 'other_field' => 'bairro', 'join_other_as' => 'cidade', 'join_table' => 'bairros' )
cidade model:
var $has_one = array( 'estado' => array( 'class' => 'estado', 'other_field' => 'cidade', 'join_other_as' => 'estado', 'join_table' => 'cidades' ) ); var $has_many = array( 'bairro' => array( 'class' => 'bairro', 'other_field' => 'cidade', 'join_self_as' => 'cidade', 'join_table' => 'bairros' ) );
estado model
var $has_many = array( 'cidade' => array( 'class' => 'cidade', 'other_field' => 'estado', 'join_self_as' => 'estado', 'join_table' => 'cidades' ) );
i want produce like:
select bairros.*, cidades.*, estados.* bairros left outer join cidades on cidades.id = bairros.cidade_id left outer join estados on estados.id = cidades.estado_id bairros.id = 1;
i message:
"unable relate bairro estado."
how this?
solved:
$pedido->include_related('cidade/estado');
thus works correctly. thanks
Comments
Post a Comment