编译 SELECT 查询时检测到未定义的绑定



我正在遵循strapi的教程,并被困在查询属于餐厅的菜肴的部分。我确定一切都已正确设置,定义了一(餐厅)对多(菜肴)关系,但查询不起作用。我已经将其追溯到实际查询,即:

query {
    restaurant(id: "1") {
    id
    name
    dishes {
      name
      description
    }
  }
}

当我在操场上运行它时会返回错误。查询在我编写时没有显示任何问题,并且不允许我编写以下内容:

query {
    restaurant(where:{id: "1"}) {
    id
    name
    dishes {
      name
      description
    }
  }
}

我的数据库是mysql,两个表如下所示:

mysql> describe dishes;
+-------------+---------------+------+-----+-------------------+-----------------------------+
| Field       | Type          | Null | Key | Default           | Extra                       |
+-------------+---------------+------+-----+-------------------+-----------------------------+
| id          | int(11)       | NO   | PRI | NULL              | auto_increment              |
| name        | varchar(255)  | YES  | MUL | NULL              |                             |
| description | longtext      | YES  |     | NULL              |                             |
| price       | decimal(10,2) | YES  |     | NULL              |                             |
| restaurant  | int(11)       | YES  |     | NULL              |                             |
| created_at  | timestamp     | NO   |     | CURRENT_TIMESTAMP |                             |
| updated_at  | timestamp     | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+---------------+------+-----+-------------------+-----------------------------+
7 rows in set (0.00 sec)

mysql> describe restaurants;
+-------------+--------------+------+-----+-------------------+-----------------------------+
| Field       | Type         | Null | Key | Default           | Extra                       |
+-------------+--------------+------+-----+-------------------+-----------------------------+
| id          | int(11)      | NO   | PRI | NULL              | auto_increment              |
| name        | varchar(255) | YES  | MUL | NULL              |                             |
| description | longtext     | YES  |     | NULL              |                             |
| created_at  | timestamp    | NO   |     | CURRENT_TIMESTAMP |                             |
| updated_at  | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+--------------+------+-----+-------------------+-----------------------------+
5 rows in set (0.00 sec)

这些表由strapi自动生成。

操场上的完整错误是这样的:

{
  "errors": [
    {
      "message": "Undefined binding(s) detected when compiling SELECT query: select `restaurants`.* from `restaurants` where `restaurants`.`id` = ? limit ?",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "restaurant"
      ],
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR",
        "exception": {
          "stacktrace": [
            "Error: Undefined binding(s) detected when compiling SELECT query: select `restaurants`.* from `restaurants` where `restaurants`.`id` = ? limit ?",
            "    at QueryCompiler_MySQL.toSQL (/Users/redqueen/development/deliveroo/server/node_modules/knex/lib/query/compiler.js:85:13)",
            "    at Builder.toSQL (/Users/redqueen/development/deliveroo/server/node_modules/knex/lib/query/builder.js:72:44)",
            "    at /Users/redqueen/development/deliveroo/server/node_modules/knex/lib/runner.js:37:34",
            "From previous event:",
            "    at Runner.run (/Users/redqueen/development/deliveroo/server/node_modules/knex/lib/runner.js:33:30)",
            "    at Builder.Target.then (/Users/redqueen/development/deliveroo/server/node_modules/knex/lib/interface.js:23:43)",
            "    at runCallback (timers.js:705:18)",
            "    at tryOnImmediate (timers.js:676:5)",
            "    at processImmediate (timers.js:658:5)",
            "    at process.topLevelDomainCallback (domain.js:120:23)"
          ]
        }
      }
    }
  ],
  "data":

知道为什么会这样吗?

这似乎是 alpha.v20 和 alpha.v21 版本的 strapi 的一个错误。已经发布了一个错误修复来解决它,github 上的问题线程在这里。

相关内容

  • 没有找到相关文章

最新更新