Currently we have two tables. Locations and Addresses
Locations are a 1 to many relation to addresses on addresses.location_id.
We are trying to output all addresses related to a specific location in the cgridview:
admin.php
- <?php $this->widget('zii.widgets.grid.CGridView', array(
- 'id'=>'locations-grid',
- 'dataProvider'=>$location->search(),
- 'filter'=>$location,
- 'columns'=>array(
- 'id',
- 'name',
- array(
- 'name' => 'address',
- 'value' => 'implode("<br>",CHtml::listData($data->addresses(),"id","address"))',
- 'filter' => CHtml::activeTextField($location, 'address'),
- 'type' => 'html',
- ),/**/
- array(
- 'class'=>'CButtonColumn',
- ),
- ),
- )); ?>
model (locations.php)
- public function search()
- {
- // Warning: Please modify the following code to remove attributes that
- // should not be searched.
- $criteria=new CDbCriteria;
- $criteria->together = true;
- $criteria->with = array('addresses');
- $criteria->compare('id',$this->id);
- $criteria->compare('name',$this->name,true);
- $criteria->compare('addresses.address',$this->address,true);
-
- return new CActiveDataProvider($this, array(
- 'criteria'=>$criteria,
- ));
- }
Is there a better way of going about getting the address data rather then imploding the $data->addresses function?