Hola a todos,
Soy nuevo en Yii Framework y estoy empezando mi primera página con este sistema.
Estoy realmente estancado con una cosa que debería ser realmente simple. Necesito algún código de ayuda.
Lo que quiero hacer es lo siguiente:
Tengo un formulario en la página principal, que incluye dos dropDownLists. Uno muestra ciudades y el otro actividades.
Quiero mostrar, en una página distinta, en un CGridView, "empresas" que ofrezcan la "actividad" en la "ciudad" seleccionada.
En mi base de datos tengo estas tres tablas:
Activities
ActivityId
ActivityName
Companies
CompanyId
CompanyName
City
Schedule
ScheduleId
CompanyId
ActivityId
Hour
Day
Este es mi formulario, creo que todo está bien por aquí:
$form=$this->beginWidget('CActiveForm', array(
'id'=>'search-form',
'action'=>Yii::app()->baseUrl.'/activities/search',
'method'=>'post',
'enableAjaxValidation'=>true,
'enableClientValidation'=>false));
?>
<div id="search">
<label for="Activities_Activity" class="required">Choose Activity</label>
<?php echo $form->dropDownList(Activities::model(), 'ActivityId', CHtml::listData(Activities::model()->findAll(), 'ActivityId', 'Activity'), array('options'=>array('42'=>array('selected'=>true)),'name'=>'activity')); ?>
<label for="Cities_City" class="required">Choose City</label>
<?php echo $form->dropDownList(Cities::model(), 'CityId', CHtml::listData(Cities::model()->findAll(), 'CityId', 'City'), array('options'=>array('24'=>array('selected'=>true)),'name'=>'City')); ?>
<?php
$this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit','type'=>'info','label'=>'Find','loadingText'=>'Searching...','htmlOptions'=>array('id'=>'buttonStateful','style'=>'margin-left:132px')));?>
</div>
<?php
$this->endWidget();
?>
No tengo ni idea de qué poner en el Controller de actividades (¿o debería ponerlo en el de empresas?):
public function actionSearch()
// :-(
{
Tampoco sé como definir las relations entre las tablas en mi modelo.
Y esto es lo que quiero rellenar en mi página de resultados:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'results-grid',
'dataProvider'=>$model->search(),
'columns'=>array(
array(
'name'=>'CompanyName',
'header'=>'CompanyName',
'type'=>'raw',
'value'=>$data->CompanyName
),
array(
'name'=>'Day',
'header'=>'Day',
'type'=>'raw',
'value'=>$data->Day
),
array(
'name'=>'Hour',
'header'=>'Hour',
'type'=>'raw',
'value'=>$data->Hour
),
),
));
?>
Alguien me puede ayudar? Estoy realmente estancado y sé que debe ser sencillísimo para alguien con experiencia.
Gracias por adelantado!