Я просто пытаюсь обернуть голову вокруг рамки yii на данный момент, и я создал функцию для одновременного удаления нескольких записей базы данных. По мнению у меня есть сетка с упоминанием каждого элемента и флажок рядом с нимYii Framework - использование CCheckBoxColumn для удаления нескольких
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'htmlOptions'=>array(
'class'=>''
),
'columns'=>array(
...
array(
'class'=>'CLinkColumn',
'header'=>'Handle',
'labelExpression'=>'$data->handle',
'urlExpression'=>'Yii::app()->createUrl(".../item/view", array("id"=>$data->id))',
),
array(
'class'=>'CCheckBoxColumn',
'header'=>'Select',
'selectableRows'=>'2',
),
),
Затем дальше вниз страницы, я хочу кнопку (удалить выбранный), который посылает массив всех элементов к функции удаления. Мои мысли были это было бы что-то похожее на это:
<a href="
<?php echo Yii::app()->createUrl('.../item/bulkDelete','array("id" => $data->id)')?>"
class="btn">Delete Selected</a>
Но я не понимаю, как получить ссылку для каждого проверяемого элемента вместо:
"id" => $data->id
, как я называл передать элемент функции просмотра ранее. Если кто-то может помочь, он будет очень признателен.
Edit:
Вид:
$form = $this->beginWidget('CActiveForm', array(
'id' => 'itemForm',
'action' => array('.../item/bulkDelete'),
));
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'htmlOptions'=>array(
'class'=>''
),
array(
'class'=>'CLinkColumn',
'header'=>'Handle',
'labelExpression'=>'$data->handle',
'urlExpression'=>'Yii::app()->createUrl(".../item/view", array("id"=>$data->id))',
),
array(
'class'=>'CCheckBoxColumn',
'header'=>'Select',
'selectableRows'=>'2',
),
... //More Columns
), //End of Grid
...
echo CHtml::SubmitButton('Delete Multiple');
$this->endWidget();
Контроллер:
public function actionBulkDelete()
{
if(isset($_POST['id'])&& !empty($_POST['id']))
{
Yii::app()->user->setFlash('success', 'Delete Items');
$this->redirect(array('.../item/index'));
}
else
{
Yii::app()->user->setFlash('success', 'No Items Selected');
$this->redirect(array('.../item/index'));
}
}
Большое вам спасибо за вашу помощь! это действительно полезно для меня! –
Извините, почему-то 'isset ($ _ POST ['id])' всегда возвращает false –
@AlecGamble вы можете разместить свой код, просто добавьте его в существующий вопрос? – Criesto