Как передать предыдущий и обратный идентификатор элемента в yii grideview?

Я пытаюсь создать ссылку в yii1.1 grideview с его идентификатором и его предыдущим и задним идентификатором элементов.

array(
    'class' => 'bootstrap.widgets.TbButtonColumn',
    'template' => '{manage}',
    'buttons' => array(
        'manage' => array(
            'label' => 'Manage',
            'icon' => 'th',                            
            'url' => Yii::app()->createUrl(
                "/member/data/manage",
                array("id" => $data->id, "prev" => ???, "post" => ???)
            ),
        ),
    ),
),

Вот мой желаемый результат.

1 ответ

Попробуйте приведенный ниже код, не очень хорошее решение, но должно работать

array(
    'class' => 'bootstrap.widgets.TbButtonColumn',
    'template' => '{manage}',
    'buttons' => array(
        'manage' => array(
            'label' => 'Manage',
            'icon' => 'th',                            
            'url' => function ($data, $row, $widget) {
                    $pagination = $widget->grid->dataProvider->getPagination();
                    $widget->grid->dataProvider->setPagination(false);
                    $provider_data = $widget->grid->dataProvider->getData();
                    $widget->grid->dataProvider->setPagination($pagination);
                    return Yii::app()->createUrl(
                        "/member/data/manage",
                        array(
                            "id" => $data->id,
                            "prev" => isset($provider_data[$row - 1]) ? $provider_data[$row - 1]->id : '',
                            "post" => isset($provider_data[$row + 1]) ? $provider_data[$row + 1]->id : ''
                        )
                    );
                },
        ),
    ),
),
Другие вопросы по тегам