Php 相关模型中的yii2排序
有关系 model Shop.phpPhp 相关模型中的yii2排序,php,sorting,yii2,models,Php,Sorting,Yii2,Models,有关系 model Shop.php public function getShopAddr() { return $this->hasOne(SprShopAddr::className(), ['id' => 'shop_addr_id']); } <?= GridView::widget([ 'dataProvider' => $dataProvider,
public function getShopAddr()
{
return $this->hasOne(SprShopAddr::className(), ['id' => 'shop_addr_id']);
}
<?= GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'summary' =>false,
'columns' => [
'location_code',
[
'label' => 'Дивизион',
'attribute' => 'division_id',
'value' => 'shopAddr.division.division'
],
['class' => 'yii\grid\ActionColumn', 'template' => '{update}{delete}'],
]
]); ?>
模型SprShopAddr.php
public function getDivision()
{
return $this->hasOne(SprDivision::className(), ['id' => 'division_id']);
}
public function getShopAddrs()
{
return $this->hasMany(SprShopAddr::className(), ['division_id' => 'id']);
}
模型SprDivision.php
public function getDivision()
{
return $this->hasOne(SprDivision::className(), ['id' => 'division_id']);
}
public function getShopAddrs()
{
return $this->hasMany(SprShopAddr::className(), ['division_id' => 'id']);
}
查看index.php
public function getShopAddr()
{
return $this->hasOne(SprShopAddr::className(), ['id' => 'shop_addr_id']);
}
<?= GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'summary' =>false,
'columns' => [
'location_code',
[
'label' => 'Дивизион',
'attribute' => 'division_id',
'value' => 'shopAddr.division.division'
],
['class' => 'yii\grid\ActionColumn', 'template' => '{update}{delete}'],
]
]); ?>
在gridview上对字段shopAddr.division.division进行排序不工作。如何修复?对于相关型号,必须正确配置数据提供程序的
设置排序功能
您可以在中找到正确的信息
最重要的部分是,您必须在yourModelSearch
中定义$dataProvider->setSor(…)函数,如下所示
$dataProvider->setSort([
'attributes' => [
'yuorRelatedFieldName' => [
'asc' => [ $tableRelated . '.yourField' => SORT_ASC ],
'desc' => [ $tableRelated . '.yourField' => SORT_DESC ],
'label' => 'yuorLabel'
],
],
'defaultOrder' => ['yuorDefaultOrderField' => SORT_ASC],
]);
我阅读了本教程,我的问题与shopAddr.division.division的关系为3,而不是教程中的2。此外,在本教程的场景3中,排序由yuorModelSearch
管理。如果未配置此部件,网格视图中的相关字段不允许排序