这是我的代码。 首先我定义了用户表
<?php
$apiKey="yourAPIkey";
include_once 'vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
$client->setDeveloperKey($apiKey);
$service = new Google_Service_Sheets($client);
$spreadsheetId = 'SheetID';
$range = 'A1:B';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (count($values) == 0) {
print "No data found.\n";
} else {
print "Name, Major:\n";
foreach ($values as $row) {
printf("<p>%s, %s</p>", $row[0], $row[1]);
}
}
?>
这里我想用一个保存所有数字的数组更新number1和number2
'use strict';
const db = require('../db');
const DataTypes = db.Sequelize;
module.exports = db.define('user', {
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING,
allowNull: false
},
number1: {
type: DataTypes.STRING
},
number2: {
type: DataTypes.STRING
}
})
所以这给我一个语法错误,这意味着sequelize不会识别这部分var arr = [1,2]
User.findAll(req.body)
.then(users => {
for(let i=0; i<arr.length; i++){
users.update({
'number'+ (i+1): '2',
})
}
})
。
如果我使用像'number'+ (i+1)
这样的模板字符串,它仍然无法正常工作。
但是当我尝试&#34; number1&#34;时,它有效! 为什么?以及如何解决此问题?
答案 0 :(得分:0)
这不是Sequelize的问题,这是您的JavaScript语法问题(因此语法错误)。
为了得到一个动态的&#34;或&#34;计算&#34;您传递给users.update
的对象的密钥,您需要[]
使用computed property names。
users.update({
[`number${i+1}`]: '2',
})