[英]Yii2 action with Pjax
在我的 yii2 應用程序中,我有一個帶有自定義操作的 gridview:
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $data,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label' => 'Id Article',
'value' => 'article.id',
],
[
'label' => 'Article Code',
'value' => 'article.code',
],
[
'label' => 'Article Price',
'value' => 'article.price',
],
[
'label' => 'Quantity',
'value' => 'quantity',
],
[
'class' => 'yii\grid\ActionColumn',
'template' => '{delete}',
'urlCreator' => function ($action, $model, $key) {
if ($action === 'delete') {
return \yii\helpers\Url::toRoute(['estimate/delete-article', 'id_estimate_article' => $model->id]);
}
}
],
]
])
?>
<?php Pjax::end(); ?>
正如您所看到的,我正在用 Pjax 包裝我的 gridview 以處理 Ajax 響應。
這是我的控制器中的刪除文章操作:
public function actionDeleteArticle($id_estimate_article)
{
$estimateArticle = EstimateArticle::findOne(['id' => $id_estimate_article]);
$id_estimate_head = $estimateArticle->estimate->id;
$estimateAccessories = $estimateArticle->estimateAccessories;
foreach ($estimateAccessories as $estimateAccessory) {
$estimateAccessory->delete();
}
$estimateArticle->delete();
return $this->redirect($this->redirect(\yii\helpers\Url::toRoute(['add-informations', 'id_estimate_head' => $id_estimate_head])));
}
代碼有效,但頁面每次刷新(所以 Pjax 沒有做的是工作)。 這是我第一次使用 Pjax。
我哪里錯了? 提前感謝所有幫助
您可以嘗試使用此代碼解決 Pjax 重新加載問題。
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $data,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label' => 'Id Article',
'value' => 'article.id',
],
[
'label' => 'Article Code',
'value' => 'article.code',
],
[
'label' => 'Article Price',
'value' => 'article.price',
],
[
'label' => 'Quantity',
'value' => 'quantity',
],
[
'class' => 'yii\grid\ActionColumn',
'header' => 'Action',
'template' => '{delete}',
'buttons' => [
'delete' => function ($url, $model, $key) {
return Html::a('Delete', yii\helpers\Url::to(['estimate/delete-article', 'id_estimate_article' => $model->id]), [
'class' => '',
'data' => [
'confirm' => 'Are you sure want to delete records?',
'method' => 'post',
],
]);
}
]
],
]
])
?>
我希望它會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.