我有一个表名business
和第二个表address
。业务表有属性,id,buisness name,image
地址表有属性address_id,business_id,street,city,house
。
在我的商业模式中,我有这样的关系'addresses' => array(self::HAS_MANY, 'Address', 'business_id'),
。
我想要的是street,city,house
从address
表中获取数据并在 .c 的 Cdetail 视图中显示Business
。我只知道它可以通过关系来完成,但不知道确切的答案。下面是我的 Cdetail 视图Business
。
<?php
/* @var $this BusinessController */
/* @var $model Business */
?>
<?php
$this->breadcrumbs=array(
'Businesses'=>array('index'),
$model->id,
);
$this->menu=array(
array('icon' => 'glyphicon glyphicon-list','label'=>'List Business', 'url'=>array('index')),
array('icon' => 'glyphicon glyphicon-plus-sign','label'=>'Create Business', 'url'=>array('create')),
array('icon' => 'glyphicon glyphicon-edit','label'=>'Update Business', 'url'=>array('update', 'id'=>$model->id)),
array('icon' => 'glyphicon glyphicon-minus-sign','label'=>'Delete Business', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?')),
array('icon' => 'glyphicon glyphicon-tasks','label'=>'Manage Business', 'url'=>array('admin')),
);
?>
<?php echo BsHtml::pageHeader('View','Business '.$model->id) ?>
<?php $this->widget('zii.widgets.CDetailView',array(
'htmlOptions' => array(
'class' => 'table table-striped table-condensed table-hover',
),
'data'=>$model,
'attributes'=>array(
'id',
'business_name',
'image',
),
)); ?>
经过大量谷歌搜索后,我终于做到了
<?php
/* @var $this BusinessController */
/* @var $model Business */
?>
<?php
$this->breadcrumbs=array(
'Businesses'=>array('index'),
$model->id,
);
$this->menu=array(
array('icon' => 'glyphicon glyphicon-list','label'=>'List Business', 'url'=>array('index')),
array('icon' => 'glyphicon glyphicon-plus-sign','label'=>'Create Business', 'url'=>array('create')),
array('icon' => 'glyphicon glyphicon-edit','label'=>'Update Business', 'url'=>array('update', 'id'=>$model->id)),
array('icon' => 'glyphicon glyphicon-minus-sign','label'=>'Delete Business', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?')),
array('icon' => 'glyphicon glyphicon-tasks','label'=>'Manage Business', 'url'=>array('admin')),
);
?>
<?php echo BsHtml::pageHeader('View','Business '.$model->id) ?>
<?php $this->widget('zii.widgets.CDetailView',array(
'htmlOptions' => array(
'class' => 'table table-striped table-condensed table-hover',
),
'data'=>$model,
'attributes'=>array(
'id',
'business_name',
'image',
array(
'name' => 'addresses', //name of relation in business model
'value' => function ($data) {
// Get all related address using the relation defined in the business model and use CHtml::listData to store data inside the $addresses variable as an array using `id` as key and `child_name` as value
$addresses = CHtml::listData($data->addresses, 'id','sector');
// Return names as a comma separated list
return implode(', ', $addresses);
},
'type'=>'raw'
)
),
)); ?>
现在我在 cdetailview 中获得城市名称,但我怎样才能获得部门,街道号码呢?