大家可以看到我的问题与标题描述有关,我创建了一个用户模型和一个续集的照片模型,基本上一个用户可以拍摄许多照片,但是每张照片只能与1个用户有关。
我的用户模型
"use strict";
var sequelize = require('./index');
var bcrypt = require('bcrypt-nodejs');
var Foto = require('./Foto');
module.exports = function (sequelize, DataTypes) {
var User = sequelize.define("User", {
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isUnique: function (value, next) {
var self = this;
User.find({ where: { username: value } })
.then(function (user) {
// reject if a different user wants to use the same username
if (user && self.id !== user.id) {
return next('username already in use!');
}
return next();
})
.catch(function (err) {
return next(err);
});
}
}
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isUnique: function (value, next) {
var self = this;
User.find({ where: { email: value } })
.then(function (user) {
// reject if a different user wants to use the same email
if (user && self.id !== user.id) {
return next('Email already in use!');
}
return next();
})
.catch(function (err) {
return next(err);
});
}
}
},
typeOfUser: {
type: DataTypes.INTEGER,
allowNull:true,
defaultValue:null
},
country: {
type: DataTypes.STRING,
allowNull:true,
defaultValue:null
},
birthDate:{
type: DataTypes.DATEONLY,
allowNull:true,
defaultValue:null
},
reports: {
type: DataTypes.INTEGER,
defaultValue: 0
},
points: {
type: DataTypes.INTEGER,
defaultValue: 0
},
password: {
type: DataTypes.STRING,
allowNull:false
},
numberFotos: {
type: DataTypes.INTEGER,
defaultValue: 0
}
}, {
classMethods: {
generateHash: function (password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
},
},
instanceMethods: {
validPassword: function (password) {
return bcrypt.compareSync(password, this.password);
}
}
});
User.hasMany(Foto,{as: 'fotos', foreignKey: 'userId'})
return Foto;
}
我的摄影模特
"use strict";
var sequelize = require('./index');
var bcrypt = require('bcrypt-nodejs');
var User = require('./User');
module.exports = function (sequelize, DataTypes) {
var Foto = sequelize.define("Foto", {
reports: {
type: DataTypes.INTEGER,
defaultValue: 0
},
image: {
type: DataTypes.STRING,
allowNull: false
},
date: {
type: DataTypes.DATE,
allowNull:true
},
position: {
type: DataTypes.RANGE,
allowNull: true
}
});
Foto.belongsTo(User, {foreignKey: 'userId'});
return Foto;
}
您无需在照片模型上声明关联:
Foto.belongsTo(User, {foreignKey: 'userId'});
如果模型之间具有1:N的关系,则只需要引用“ 1”模型的ID(在我们的案例中为User模型),就可以引用“ N”模型的照片。这样做:
User.hasMany(Foto,{as: 'fotos', foreignKey: 'userId'})
将在Foto表上创建一个引用用户表的名称为“ userId”的列。这样,两个模型都可以根据需要进行关联。
HasMany relations (一对多的关系) 简介 定义 HasMany 关系 添加方法到 HasMany 的模型 定义 hasMany 关系建立一个一对多的连接到其他 Model, 经常 其他模型还会设置 belongsto 关联到 这个模型。 这个关系(hasMany) 表示每个实例,都关联着 0 个或者多个其他 model 例如,在与客户定单的应用程序,客户可以有许多订单,如下图所示
本文向大家介绍Yii2 hasOne(), hasMany() 实现三表关联的方法(两种),包括了Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)的使用技巧和注意事项,需要的朋友参考一下 背景: 现有 group (组)和 user (用户) 两种实例。 一个 group 中可以拥有多个 user,一个 user 也可以属于有多个 group (多对多关系) Group
因此,我初始化了一个名为P1的对象,名称为“zach”,hp为100,损坏为20,我无法在其他地方访问这3个变量。这些不是玩家类中的私有变量,我说的是类中通过执行以下操作初始化的那些变量: 我想我可以在任何地方调用P1.health,如果它是公共的?感谢任何帮助,这是我的第一个基于文本的游戏机游戏,所以其他输入也很感谢。
我想检索页面中post_id(post1)下的所有评论: 表注释 桌柱 模型comment.php 模型post.php 控制器postsController。php 当我访问//localhost/posts/post1/时,不会显示任何相关注释。SQL的运行方式如下: 如何删除='1"以检索相应的注释?
问题内容: 是否可以检索方法/构造函数的调用者实例? 该问题已经发布,但是每次答案都在谈论调用方类(使用stacktrace)而不是调用方实例时。如果存在解决方案,则可以很方便地构建对象图(具有常见的超级类型)并使用默认构造函数处理父级子级导航。 问题答案: 您的直觉是正确的-这是不可能的。我个人认为这是一个 很好的 事情,因为它会导致代码相对于重构非常脆弱的(想象一下,拉一些代码伸到一个静态方法
问题 你想创建一个实例,但是希望绕过执行 __init__() 方法。 解决方案 可以通过 __new__() 方法创建一个未初始化的实例。例如考虑如下这个类: class Date: def __init__(self, year, month, day): self.year = year self.month = month self.