YiiBooster. TbEditableColumn. Не сохраняет модель.

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
frazelli
Сообщения: 54
Зарегистрирован: 2013.04.20, 07:38

YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение frazelli »

Во вьюхе:

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

$this->widget(
    'application.extensions.booster.widgets.TbGridView',
    array(
        'type' => 'striped bordered',
        'dataProvider' => new CActiveDataProvider('Stats'),
        'columns' => array(
            'pid',
            array(
                'class' => 'application.extensions.booster.widgets.TbEditableColumn',
                'name' => 'login',
                'sortable' => false,
                'editable' => array(
                    'model'  => $model,
                     'attribute' => 'login',
                    'url' => $this->createUrl('stats/editableSaver'),
                    'placement' => 'right',
                    'inputclass' => 'span3'
                )
            )
        ),
    )
);
 
В контроллере:

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

public function actionEditableSaver()
        {
            Yii::import('application.extensions.booster.components.TbEditableSaver');
            $es = new TbEditableSaver('Stats');
            $es->update();
        }
 
При попытке сохранить измененное поле выдает такую ошибку:
Property "attribute" should be defined.
print_r($es); показывает это:
TbEditableSaver Object
(
[scenario] => editable
[modelClass] => Stats
[primaryKey] =>
[attribute] =>
[model] =>
[value] =>
[errorHttpCode] => 400
[changedAttributes:protected] => Array
(
)

[_e:CComponent:private] =>
[_m:CComponent:private] =>
)
То есть данные в модель не передаются.

Подскажите, что не так в этом коде? Со вчерашнего вечера не могу пофиксить.

Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение Neuromance »

Предположу, что модель и атрибут в блок editable передаваться не должны

frazelli
Сообщения: 54
Зарегистрирован: 2013.04.20, 07:38

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение frazelli »

Убрал модель и атрибут — проблема осталась.

Аватара пользователя
TranceSmile
Сообщения: 562
Зарегистрирован: 2011.06.27, 19:04
Откуда: Украина
Контактная информация:

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение TranceSmile »

У Вас параметры передаются в екшн?
Изображение

frazelli
Сообщения: 54
Зарегистрирован: 2013.04.20, 07:38

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение frazelli »

TranceSmile писал(а):У Вас параметры передаются в екшн?
Судя по print_r($es) — не передаются.

В экшене после $es = new TbEditableSaver('Stats') в $es ничего нет.

frazelli
Сообщения: 54
Зарегистрирован: 2013.04.20, 07:38

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение frazelli »

Какие еще есть варианты сделать редактируемые колонки в таблице? YiiBooster 4.0.1 не подходит, слишком много часов потрачено на решение, хотя делаю все по мануалу.

Beluj
Сообщения: 37
Зарегистрирован: 2014.06.18, 19:52

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение Beluj »

Ну можете просто завернуть свой CGridView в форму, и в полях которые нужно редактировать выводить инпут,
добавить кнопку, чтоб сабмитить форму потом проходится в цикле и записывать все в базу через модель и или как там реализуете

в колонке выводите инпут

array('name'=>'sum',
'header'=>Yii::t('app','Сумма'),
'type'=>'raw',
'value'=>'CHml::input(....)',
'htmlOptions'=>array('style' => 'text-align:right;')
),

Это самый примитивный вариант, а так можно использовать ExtJS посмотрите там на GridView

DTL67
Сообщения: 9
Зарегистрирован: 2014.07.20, 13:11
Откуда: Красноярск, Россия
Контактная информация:

Re: YiiBooster. TbEditableColumn. Не сохраняет модель.

Сообщение DTL67 »

А в модель добавили сценарии editable ? И атрибуты, которые можно обновлять через этот сценарии?

к примеру:

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

array('username, email, group_id, phone', 'safe', 'on'=>'editable'),

Ответить