我必须以这种格式保存数据{“dashboard_layout”:[9,10,5]}。 但目前我的数据以这种格式保存。{“dashboard_layout”:[“9,5”,“10,5”]}。
例如,如果$ id = 5,那么我必须将数据存储在{“dashboard_layout”中:[9,10,5]}
public function actionDashboardBlockAdd(){
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) {
$dashboardLayout[] = $value.','.$id;
}
$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,
]);
}
}
有人可以帮我解决问题???
答案 0 :(得分:0)
public function actionDashboardBlockAdd(){
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) {
$dashboardLayout[] = $value;
}
array_push($dashboardLayout,$id);
$perferencesOther->dashboard_layout = $dashboardLayout;
// store updated preferencves in db
$model->others = json_encode($perferencesOther,JSON_NUMERIC_CHECK);
$model->save();
echo Json::encode([
'status' => true,
'value'=>$model->others
]);
}
} else {
echo Json::encode([
'status' => false,
]);
}
}
使用array_push解决了我的问题