Hello,
I was trying to show a gridview with a relationship column. The CRUD generator add the "employee_type_id" column but I need to show the type name instead of type ID.
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'name',
'last_name',
'employee_type_id',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
I change the $query of the Search method
$query = Employee::find()->leftJoin('employee_type','employee.employee_type_id=employee_type.id')->with('EmployeeType');
And I change the sort like the topic http://www.yiiframework.com/forum/index.php/topic/49447-how-to-use-filters-in-the-gridview-widget-when-table-relationship-is-present/
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => array(
'attributes' => array(
'EmployeeType' => array(
'asc' => array('EmployeeType.name' => SORT_ASC, 'name' => SORT_ASC),
'desc'=> array('EmployeeType.name' => SORT_DESC, 'name' => SORT_ASC)
),
'name',
'last_name',
)
),
]);
What should I write in the GridView column?? Because ‘EmployeeType’ does not work.
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'name',
'last_name',
'EmployeeType',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Thanks a lot for your help!