我有Json数组
{"dashboard_layout":[10,9]}
根据id
,我必须从这个数组中删除这些值。
这是我的函数,我添加了我的视图页面,还添加了.Always (失败)部分.Is此函数中的某些错误
public function actionDelete() {
if (isset($_POST['id'])) {
$id = $_POST['id'];
$model = \app\models\UserPreferences::find()->where(['user_id' => Yii::$app->user->identity->user_id])->one();
$blockvalues = json_decode($model->others);
foreach ($blockvalues as $key => $value) {
if ($value == $id) {
unset($blockvalues[$key]);
echo Json::encode([
'status' => true,
]);
}
}
} else {
echo Json::encode([
'status' => false,
'id'=>$id
]);
}
}
jQuery('body').on('click', '#delete', function(e) {
var id=$(this).val();
alert(id);
$.ajax({
type: 'POST',
cache: false,
data:{'id': id},
url: '".Yii::$app->getUrlManager()->createUrl("/dashboard-blocks/delete")."',
dataType: 'json',
success: function(data){
alert('hii');
},
error: function (xhr, ajaxOptions, thrownError) {
alert('failed');
}
});
});
注意:$model->其他包含json {"dashboard_layout":10,9}
发布于 2018-06-02 05:20:21
public function actionDelete() {
if(isset($_POST['id'])) {
$id = $_POST['id'];
$model = \app\models\UserPreferences::find()->where(['user_id' => Yii::$app->user->identity->user_id])->one();
// check here if model is not null
$perferencesOther = json_decode($model->others);
if(!empty($perferencesOther) && isset($perferencesOther->dashboard_layout)) {
$dashboardLayout = [];
foreach ($perferencesOther->dashboard_layout as $key => $value) {
if($value != $id){
$dashboardLayout[] = $value;
}
}
$perferencesOther->dashboard_layout = $dashboardLayout;
// store updated preferencves in db
$model->others = json_encode($perferencesOther);
$model->save();
echo Json::encode([
'status' => true,
'value'=>$model->others
]);
}
} else {
echo Json::encode([
'status' => false,
]);
}
}
这对我很管用
https://stackoverflow.com/questions/50631450
复制相似问题