Hola, tengo un porblema, a pesar de estar super interesado en trabajar con yii, me cuesta mucho comprenderlo.
En fin, mi idea es lograr hacer esto para seguir poniendole muchas pilas al yii.
Quiero crear una pagina, para ciertas categorias, ej: Autos, Motos, Camiones.
Cada categoria tiene sub-categorias.
Tengo dos tablas, con contenido diferente tbl_post tbl_productos y otra tabla para categorias. No se si es correcto tener divididos los articulos por tipo en dos tablas diferentes o bien poner una columna tipo, que los clasifique, que es lo recomendable?
Mi idea es que por ejemplo exista una pagina para la categoria Autos y que dentro de ella, me liste todos los autos que se encuentran dentro de la tbl_productos y todos las notas que se encuentran dentro de la tbl_post
a su vez, y si es que se puede, me gustaria darle un aspecto diferente a cada categoria.
En principio esto es lo que tengo realizado
tres controladores PostController, ProductosControllers, CategoriaController
y utilizo la categoria/view como vista(es correcto?), aunque los datos los importo directamente desde la vista, ya que no supe como implementarla dentro del modelo de categoria.
<?php
$this->breadcrumbs=array(
'Categorias'=>array('index'),
$model->name,
);
<h1>View Categoria #<?php echo $model->id; ?></h1>
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'name',
'frequency',
),
));
?>
<br />
<?php
$rawData=Post::model()->findAll('categoria_id=:categoria_id',
array(
':categoria_id'=>$model->id,
));
$dataProvider=new CArrayDataProvider($rawData, array(
'id'=>'id',
'sort'=>array(
'attributes'=>array(
'id', 'title', 'content','categoria'
),
),
));
$form=$this->beginWidget('CActiveForm', array(
'id'=>'form1', 'action' => Yii::app()->createUrl('post/create'),
'enableAjaxValidation'=>false,)); ?>
<?php $dataProvider->pagination->pageSize=5;?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'proveedor-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'class' => 'SCLinkColumnWithSort',
'name'=>'title',
'labelExpression'=>'$data->title',
'urlExpression'=>'"index.php?r=post/view&id=".$data->id',
'header'=>'Titulo'
),
array('name'=>'content', 'htmlOptions'=>array('width'=>'80px')),
array('name'=>'categoria.name', 'header'=>'Categoria','htmlOptions'=>array('width'=>'80px')),
array('name'=>'marca.name', 'header'=>'Marca', 'htmlOptions'=>array('width'=>'80px')),
), ));?>
<?php echo CHtml::submitButton('crear nuevo', array('style'=>'width','40px'))?>
<?php $this->endWidget()?>
<?php
$rawData2=Productos::model()->findAll('categoria_id=:categoria_id',
array(
':categoria_id'=>$model->id,
));
$dataProvider2=new CArrayDataProvider($rawData2, array(
'id'=>'id',
'sort'=>array(
'attributes'=>array(
'id', 'title', 'content','categoria'
),
),
));
$form=$this->beginWidget('CActiveForm', array(
'id'=>'form1', 'action' => Yii::app()->createUrl('post/create'),
'enableAjaxValidation'=>false,)); ?>
<?php $dataProvider->pagination->pageSize=5;?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'proveedor-grid',
'dataProvider'=>$dataProvider2,
'columns'=>array(
array(
'class' => 'SCLinkColumnWithSort',
'name'=>'title',
'labelExpression'=>'$data->title',
'urlExpression'=>'"index.php?r=post/view&id=".$data->id',
'header'=>'Titulo'
),
array('name'=>'content', 'htmlOptions'=>array('width'=>'80px')),
array('name'=>'categoria.name', 'header'=>'Categoria','htmlOptions'=>array('width'=>'80px')),
array('name'=>'marca.name', 'header'=>'Marca', 'htmlOptions'=>array('width'=>'80px')),
), ));?>
<?php echo CHtml::submitButton('crear nuevo', array('style'=>'width','40px'))?>
<?php $this->endWidget()?>
Muchas gracias
H.