我有像这样的网格视图
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ingredient-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
//'id',
'barcode',
'ingredient',
'pantry',
'catid',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
我想要打印我的模型的最后关系
return array(
'cat' => array(self::BELONGS_TO, 'Categories', 'catid'),
'memberingredients' => array(self::HAS_MANY, 'Memberingredients', 'ingredient_id'),
'recipeingredients' => array(self::HAS_MANY, 'Recipeingredients', 'ingredient_id'),
'ingredientmeasurement'=>array(self::HAS_MANY, 'IngredientMeasurement','ing_id'),
);
我如何在网格视图中打印成分测量的最后一个关系,注意关系包含HAS_MANY
答案 0 :(得分:1)
只要这样做就可以了:
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'ingredient-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
//'id',
'barcode',
'ingredient',
'pantry',
'catid',
array(
'name' => 'id',
'type' => 'html',
'value' => function($data) {
$countRecipe = 0;
$findMeasures = IngredientMeasurement::model()->findAllbyAttributes(array('ing_id' => $data->id));
$myString = '';
foreach ($findMeasures as $ms)
$myString.=$value->name . ',';
$myString.=$value->relation->col(if need next relation) . ',';
echo $myString;
}
),
答案 1 :(得分:0)
如果两个表之间存在一对一的关系,那么首先要改变这个
'ingredientmeasurement'=>array(self::HAS_MANY, 'IngredientMeasurement','ing_id'),
到
'ingredientmeasurement'=>array(self::HAS_ONE, 'IngredientMeasurement','ing_id'),
然后您可以在 CGridView
中添加以下行'columns'=>array(
'ingredientmeasurement.columnName',
'barcode',
'ingredient',
否则如果它有很多关系,那么这个链接可能会为你提供答案