Я попытался настроить Kartik Gridview с помощью Editable Columns. Одна колонка имеет тип INPUT_SELECT2
.yii2 Kartik: Редактируемый (Multi-) Select2 в GridView не показывает загруженные данные
В представлении я имею следующее определение:
$gridColumns = [
[
'class'=>'kartik\grid\EditableColumn',
'attribute'=>'occupation_ids',
'value' => 'occuList',
'editableOptions'=>[
'header'=>'Occupations',
'inputType'=>Editable::INPUT_SELECT2,
'options' => [
'attribute'=>'occupations',
'data' => ArrayHelper::map(Occupation::find()->all(), 'id', 'description'),
'options' => [
'multiple' => true,
],
'pluginOptions' => [
'tags' => true,
],
],
'asPopover' => false,
],
],
...];
echo GridView::widget([
'dataProvider'=>$dataProvider,
'columns'=>$gridColumns,
'filterModel' => $searchModel,
]);
Сохранение значений отлично работает. Но если дело доходит до загрузки и отображения сохраненных данных, я должен был обмануть, чтобы все было в порядке. В GridView содержится список MonthlyEmployment
. MonthlyEmployment
имеет следующий метод
* @property Occupation[] $occupations
*/
class MonthlyEmployment extends \yii\db\ActiveRecord
{
public $occupation_ids;
public function getOccuList() {
$arr = [];
foreach ($this->occupations as $ocu) {
$arr[] = $ocu->description;
}
if ($arr != null && !empty($arr)) {
return implode(', ', $arr);
} else {
return '';
}
}
Таким образом, сохраненные Профессии, показываются в GridView. Но если я открою модуль для редактирования поля, значения не будут выбраны. Изображение ниже, чтобы увидеть, что я имею в виду.
GridView Editable Column (Multi)Select2
Так есть кто-нибудь рабочий пример с Картик GridView, редактируемые и выбор2?