yii2 - PJAX 后 YII2 可编辑列不起作用
问题描述
gridview 中集成了 EditableColumn 的列,在每个页面加载时都可以正常工作,但在执行任何 PJAX 调用(如搜索、分页更改等)之后就不行了。
在查看 EditableColumn 代码如下所示:
[
'class' => EditableColumn::class,
'attribute' => 'visit_status',
'url' => ['update'],
'type' => 'select',
'editableOptions' => function ($model) {
return [
'source' => [
'PENDING' => 'PENDING',
'APPROVED' => 'APPROVED',
'REJECTED' => 'REJECTED'
],
'value' => $model->visit_status,
'editable' => true
];
},
],
控制器动作如下:
public function actionUpdate()
{
$pk = unserialize(base64_decode(Yii::$app->request->post('pk')));
$model = MyModel::findOne($pk);
if ($model) {
$model->visit_status = Yii::$app->request->post('value');
if ($model->validate(['visit_status'])) {
$model->save(false);
} else {
throw new BadRequestHttpException($model->getFirstError('visit_status'));
}
}
}
如果 PJAX 被禁用,那么它工作正常,但不能为此妥协 PJAX
解决方案
推荐阅读
- visual-studio-code - vscode-dev-containers 是否适用于 LXC 等非 Docker 容器?
- python - 用于获取特定语言的随机短语的模块或 API
- javascript - React Native Keyboard Dismiss 有灰色区域的延迟
- python - 绘制圆形并测试与多边形的重叠
- python - 在 OpenCV 中写入几帧视频
- react-native - 关于 React Native Maps 和 Markers 的问题
- java - Java Postgis如何将jts转换为坐标
- compilation - 如何将 DPDK 项目扫描为
- ruby - 带有 RSPEC 的 VCR 抛出 JSON 文本必须至少包含两个八位字节
- php - 当 prepare() 失败时 mySql 没有返回错误信息