我今天也遇到了这个问题,我的是这样解决的:
1、加上外键:“foreignKey”: “opendb-nation-china._id”
2、enum中的"field"的值"_id as value, name as text",要value在前text在后,调换过来就不行
“nation_china”: {
“bsonType”: “string”,
“title”: “民族”,
“order”: 2,
“enum”: {
“collection”: “opendb-nation-china”,
“field”: “_id as value, name as text”
},
“foreignKey”: “opendb-nation-china._id”
},
谢谢 成功解决问题
谢谢 成功解决问题
解决,list中collection设置问题
怎么解决?
页面中数据库联表查询这样就没事了
怎么解决?
看最新皮鞥轮
也遇到了这个问题,最新版本 3.5.3
怎么解决的呢
看最新皮鞥轮
这样处理:
“nation”: {
“bsonType”: “string”,
“title”: “民族”,
“description”: “民族”,
“order”: 4,
“foreignKey”: “opendb-nation-china.name”,
“enum”: {
“collection”: “opendb-nation-china”,
“orderby”: “first_letter asc”,
“field”: “name as value, name as text”
},
“componentForEdit”: {
“name”: “uni-data-picker”
}
},
还是不行,按这样修改后,list页面显示 “未找到主表与附表之间的关联关系……”
答案: detail.vue 里面field: unicloud-db ref=“udb” v-slot:default="{data, loading, error, options}" :options=“options” :collection=“collectionList” field=“username,gender,mobile,email,comment,nation_china{name as text}” :where=“queryWhere” :getone=“true” :manual=“true”
重新生成就可以看到具体的代码了 。
在 uni-app
中,如果你使用数据库查询时,需要避免使用数据库内包含的字段名作为别名,这通常是为了防止字段名冲突或混淆。以下是一些常见的做法和建议:
1. 使用明确的别名
在 SQL 查询中,为字段指定一个明确的别名,避免与数据库中的字段名相同。例如:
SELECT username AS user_name, email AS user_email FROM users;
在这个例子中,username
和 email
是数据库中的字段名,而 user_name
和 user_email
是别名,避免了与数据库字段名冲突。
2. 使用表名前缀
如果查询涉及多个表,可以使用表名前缀来避免字段名冲突。例如:
SELECT u.username AS u_username, p.post_title AS p_title
FROM users u
JOIN posts p ON u.id = p.user_id;
在这个例子中,u_username
和 p_title
是别名,避免了与不同表中的字段名冲突。
3. 避免使用保留字
确保别名不是数据库的保留字或关键字。例如,避免使用 SELECT
, FROM
, WHERE
等作为别名。
4. 在代码中处理
如果你在代码中处理查询结果,确保在代码中使用的变量名与数据库字段名不同。例如:
const result = await db.query('SELECT username AS user_name FROM users');
console.log(result[0].user_name); // 使用别名 user_name 而不是 username