GridView нужно исчерпывающее руководство

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

https://nix-tips.ru/yii2-razbiraemsya-s-gridview.html вроде здесь все расписано....

Код: Выделить всё

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        ...
        [
            'class' => 'yii\grid\ActionColumn',
            'template' => '{view} {update} {delete} {link}',
            'buttons' => [
                'update' => function ($url,$model) {
                    return Html::a(
                    '<span class="glyphicon glyphicon-screenshot"></span>', 
                    $url);
                },
                'link' => function ($url,$model,$key) {
                    return Html::a('Действие', $url);
                },
            ],
        ],
    ],
]); ?>
но вот когда добавляю

Код: Выделить всё

'buttons' => [
                'update' => function ($url,$model) {
                    return Html::a(
                    '<span class="glyphicon glyphicon-screenshot"></span>', 
                    $url);
                },
                'link' => function ($url,$model,$key) {
                    return Html::a('Действие', $url);
                },
            ],
в свой код получается ошибка ...
вообще не понятно что такое анонимная функция , откуда $url откуда $model откуда $key ? может кто нибудь прояснить?
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: GridView нужно исчерпывающее руководство

Сообщение vitalik1183 »

какая ошибка?
Yii2!
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

Setting unknown property: yii\grid\DataColumn::update
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

Код: Выделить всё

$contentOptions public property
The HTML attributes for the data cell tag. This can either be an array of attributes or an anonymous function (Closure) that returns such an array. 
The signature of the function should be the following: function ($model, $key, $index, $column). 
Where $model, $key, and $index refer to the model, key and index of the row currently being rendered and $column is a reference to the yii\grid\Column object. 
A function may be used to assign different attributes to different rows based on the data in that row.

See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
И так разбираемся:
$model - то модель данной конкретной стоки gridView допустим уложил в голове.
$key - это индекс строки (не совпадающий с id из $model)?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: GridView нужно исчерпывающее руководство

Сообщение someweb »

an.viktory@gmail.com писал(а): 2017.08.03, 09:17 Setting unknown property: yii\grid\DataColumn::update
Забыли вставить

Код: Выделить всё

            'class' => 'yii\grid\ActionColumn',
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

я его как бы не убирал.... он там как был так и остался)
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: GridView нужно исчерпывающее руководство

Сообщение someweb »

Ну как там, когда в ошибке ясно пишется DataColumn, а не ActionColumn.
Либо что-то не то с общей структурой параметра columns.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

еще вопрос:
добавил в action column

Код: Выделить всё

'fix'=>function ($url, $model) {
                        $id = $model['id']; //$model->id для AR
                        return Button::widget(["label" => 'Fix', "options" => ["class" => "btn-primary address-ajax-fix", "data-id" => $id]]);
                    },
                    
                    
разместил:

Код: Выделить всё

<script>

    // зафиксировать данный адрес
    $('.address-ajax-fix').on('click', function(e) {
        e.preventDefault();
        var id = $(this).data('id');


        $.ajax({
            url : '/addresses/fix',
            data: { id: id},
            type: 'get',
            success: function(res){

            },

            error: function() {alert('error')}
        });
        this.disabled=true;
    });

</script>
ajax не происходит;
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: GridView нужно исчерпывающее руководство

Сообщение BrusSENS »

an.viktory@gmail.com писал(а): 2017.08.03, 09:02 вообще не понятно что такое анонимная функция , откуда $url откуда $model откуда $key ? может кто нибудь прояснить?
Анонимная функция - это функция, которая не имеет имени, так же известная, как замыкание.
Почитайте на досуге доку
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: GridView нужно исчерпывающее руководство

Сообщение an.viktory@gmail.com »

уже изучил)) до этого незнал)
Ответить