【问题标题】:SailsJS and mySQL custom ID name not working with blue printsSails JS 和 mySQL 自定义 ID 名称不适用于蓝图
【发布时间】:2014-01-19 10:09:44
【问题描述】:

我在 SailsJS 中创建了一个新模型,并使用自定义 id 名称作为主键。我想使用 SailsJS 附带的蓝图路线,但是当我尝试转到 /name/1 时,我收到以下错误。

ER_BAD_FIELD_ERROR: Unknown column 'id' in 'where clause'

Sails 似乎仍在寻找默认表名称“id”而不是我的新自定义 id。关于如何让 Sails 实现我的更改的任何想法?

谢谢

【问题讨论】:

  • 只是好奇,既然您在模型中使用了一个名为 id 的列,为什么需要不同的自定义 id
  • @JohnGalt - 我已将“id”列更改为“uid”,因为我在另一个表中有关系。当我尝试使用 Sails 默认蓝图(即:GET /user/1)时,我收到上述错误。我认为 Sails 会知道使用您设置的任何内容作为模型中的主键,但看起来它只是使用“id”。

标签: mysql node.js sails.js


【解决方案1】:

转到您的模型定义并最后添加 autoPK:false。

module.exports = {

  schema:'true',
  attributes: {
    propertyName: { type:"string", required:true, unique: true }
  },
  autoPK:false
}

【讨论】:

  • 作为一个刚刚学习sails.js的人,这是一个救命稻草。
【解决方案2】:

好的,我查看了 SailsJS src 并在第 37 行的 node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js 中找到了检查属性“autoPK”的内容。此属性默认设置为 true 并查找字段“id”。通过在我的模型中设置“autoPK: false”,它会检查您是否设置了自定义主键并使用它。全部固定。

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2018-12-22
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多