Я безуспешно пытаюсь обновить базу данных из dropDownList CGridView.Yii Обновление базы данных из dropDownList
вот код CGridView:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'invoice-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
'id',
'username',
array(
'name' => 'state',
'type' => 'raw',
'value' => '$data->stateDropdown',
'filter' => array('0' => Yii::t('app', 'No'),
'1' => Yii::t('app', 'Yes'),
),
),
array(
'class' => 'CButtonColumn',
'template'=>'{view}',
),
),
)); ?>
Вот добытчиком функции stateDropDown() в модели:
public function getStateDropdown()
{
$state = array(
0 => 'No',
1 => 'Yes',
);
return CHtml::dropDownlist('state', $this->state, $state, array(
'class' => 'state',
'data-id' => $this->id,
'onchange' => 'alert(0);',
));
}
Когда я изменяю DropDownList элемент, в сценарий предупреждения запускается, но когда я пытаюсь использовать функцию вместо этого, у меня есть ошибка. Я хочу использовать эту функцию, описанную ниже, для обновления значения состояния в базе данных.
function updateState($state, $id)
{
$user = User::model()->findByPk($id);
$user->state = $state;
$user->update();
}
Как я могу назвать функцию updateState() вместо предупреждения (0)
Почему вы ссылаетесь на тег yii2, пока ваш код выглядит для Yii1? – scaisEdge
@scaisEdge Решение yii1 или yii2 поможет мне. Может быть, у кого-то может быть решение yii2 для решения моей проблемы. – stfsngue
вы не можете обновлять базу данных, как это, в лучшем случае вы можете фильтровать базу данных с помощью сетки, если это так, также вы ошибаетесь – tinybyte