Yii Framework Forum: Categorias Com Parent_Id - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Categorias Com Parent_Id Rate Topic: -----

#1 User is offline   marcoaurelio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 10-December 12

Posted 21 February 2013 - 03:46 PM

Estou tentando montar uma tabela de 'Categorias' com a seguinte estrutura:


CREATE TABLE IF NOT EXISTS `categoria` (
`IDCategoria` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`descricao` text NOT NULL,
`parent_id` int(11) NOT NULL,
`top` int(11) NOT NULL,
`ordem` int(11) DEFAULT '0',
`status` int(11) NOT NULL,
PRIMARY KEY (`IDCategoria`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

- na model:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'categoria_parent' => array(self::BELONGS_TO, 'Categoria', 'parent_id', 'condition' => 'parent_id <> 0'), //the column in 'parent' containing 'this' id
'categoria_childs' => array(self::HAS_MANY, 'Categoria', 'parent_id'),
);
}


- Na minha view ADMIN da model 'Categorias' tenho isso:

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'categoria-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'IDCategoria',
'parent_id',
'status',
'nome',
array(
'name'=>'nome',
//'header'=>'Setor',
'value'=>'$data->parent_id > 0 ? $data->getChilds($data->parent_id,$data->nome) : $data->nome',
'htmlOptions'=>array('style'=>'text-align:center;'),
),
'ordem',

array(
'class'=>'CButtonColumn',
),
),
)); ?>


- E grande questão é o seguinte...Queria listar na minha Grid as categorias dessa forma:


Panelas > Caldeirões
Panelas > Caçarolas
Panelas > Caçarolas > Alumínio
Panelas > Pressão
Utensílios
Mesas

De forma que eu pudesse passar o $parent_id e ele me retornasse os elementos:
Algo como $data->getChilds($data->parent_id,$data->nome);

Alguma ideia?
Ja pesquisei tem muitos lugares, mas nenhum na mesma situação que eu.

HEEEEEEEEEEEELP...
0

#2 User is offline   Luiz Reginaldo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 34
  • Joined: 04-May 11
  • Location:Brazil, MG, Uberaba

Posted 01 March 2013 - 03:24 PM

Talvez esta extensão possa te ajudar

http://www.yiiframew...tedsetbehavior/
0

#3 User is offline   marcoaurelio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 10-December 12

Posted 03 March 2013 - 11:19 AM

Obrigado pela dica Luiz Reginaldo,
mas eu consegui resolver meu problema com essa função muito simples! Mas suei pra conseguir achar a solução...



//pega os pais a partir de uma filha
	public static function getStringParents($idParent,$nomeFinal) {
		$nome = $nomeFinal;
		while($idParent != 0){
			
			$model = Categoria::model()->findByPk($idParent);
			$nome = $model->nome.' > '.$nome;

			$idParent = $model->parent_id;
			
		}
		return $nome;
	}

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users