第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

sequelize 關(guān)聯(lián)查詢問題

sequelize 關(guān)聯(lián)查詢問題

尚方寶劍之說 2019-05-08 12:51:55
目前遇到的問題是通過sequelize進(jìn)行關(guān)聯(lián)查詢后需要的問題是關(guān)聯(lián)查詢結(jié)果第一次查詢沒問題,再查詢一次就會(huì)報(bào)錯(cuò)。1、兩個(gè)關(guān)聯(lián)的模型(1)菜單模型'usestrict';module.exports=app=>{const{STRING,INTEGER,DATE}=app.Sequelize;lettable_name='qt_admin_menu';constAdminMenu=app.model.define(table_name,{menu_id:{type:'VARCHAR(32)',allowNull:false,defaultValue:'',primaryKey:true},parent_id:{type:'VARCHAR(32)',allowNull:false,defaultValue:'0',primaryKey:false},pk:{type:'VARCHAR(32)',allowNull:false,defaultValue:'',primaryKey:false},menu_type:{type:'TINYINT(3)UNSIGNED',allowNull:true,defaultValue:'1',primaryKey:false},top_menu:{type:'INT(1)UNSIGNED',allowNull:true,defaultValue:'2',primaryKey:false},status:{type:'TINYINT(3)UNSIGNED',allowNull:true,defaultValue:'1',primaryKey:false},list_order:{type:'TINYINT(5)UNSIGNED',allowNull:true,defaultValue:'1',primaryKey:false},menu_app:{type:'VARCHAR(15)',allowNull:true,defaultValue:'',primaryKey:false},controller:{type:'VARCHAR(30)',allowNull:true,defaultValue:'',primaryKey:false},action:{type:'VARCHAR(30)',allowNull:true,defaultValue:'',primaryKey:false},url_method:{type:'VARCHAR(10)',allowNull:true,defaultValue:'get',primaryKey:false},menu_url:{type:'VARCHAR(200)',allowNull:true,defaultValue:'',primaryKey:false},param:{type:'VARCHAR(50)',allowNull:true,defaultValue:'',primaryKey:false},menu_name:{type:'VARCHAR(30)',allowNull:true,defaultValue:'',primaryKey:false},icon:{type:'VARCHAR(20)',allowNull:true,defaultValue:'',primaryKey:false},remark:{type:'VARCHAR(255)',allowNull:true,defaultValue:'',primaryKey:false},isdelete:{type:'INT(1)',allowNull:true,defaultValue:'2',primaryKey:false}});//AdminMenu.removeAttribute('id');returnAdminMenu;};(2)角色菜單關(guān)聯(lián)表模型'usestrict';module.exports=app=>{const{STRING,INTEGER,DATE}=app.Sequelize;lettable_name='qt_admin_role_menu';constAdminRoleMenu=app.model.define(table_name,{id:{type:'INT(11)',allowNull:false,defaultValue:null,primaryKey:true,autoIncrement:true},role_id:{type:'INT(11)',allowNull:false,primaryKey:false},menu_id:{type:'VARCHAR(32)',allowNull:false,defaultValue:'',primaryKey:false}});returnAdminRoleMenu;};2、service里面的查詢'usestrict';constService=require('egg').Service;classMenuServiceextendsService{//默認(rèn)不需要提供構(gòu)造函數(shù)。constructor(ctx){//如果需要在構(gòu)造函數(shù)做一些處理,一定要有這句話,才能保證后面`this.ctx`的使用。super(ctx);//就可以直接通過this.ctx獲取ctx了//還可以直接通過this.app獲取app了this.table_name='qt_admin_menu';//加載modelthis.adminMenuModel=ctx.model.AdminMenu;this.adminRoleMenuModel=ctx.model.AdminRoleMenu;//定義hasMany關(guān)聯(lián)this.adminMenuModel.hasMany(this.adminRoleMenuModel,{as:'u',through:null,foreignKey:'menu_id'})//this.adminRoleMenuModel.belongsToMany(this.adminMenuModel,{////as:'adminMenuModel',//foreignKey:'menu_id'//});}asyncgetRoleMenu(rid){//[this.app.Sequelize.fn('if','adminRoleMenuModel.menu_idisnull','false','true'),'selected']constresult=awaitthis.adminMenuModel.findAll({raw:true,attributes:['menu_id','parent_id','menu_name','icon',[this.app.Sequelize.col('u.id'),'selected']],include:[{attributes:[],model:this.adminRoleMenuModel,as:'u',where:{role_id:rid,},required:false}],order:[['top_menu','ASC'],['list_order','ASC']]})//.then(rows=>rows&&rows.map(r=>r.toJSON()));//console.log(result);//constresult=awaitthis.app.mysql.query('selecta.*,b.menu_idasselectedex,if(b.menu_idisnull,"false","true")asselectedfromqt_admin_menualeftjoinqt_admin_role_menubona.menu_id=b.menu_idandb.role_id=?ORDERBYa.top_menu,a.list_order',[rid]);returnresult;}}module.exports=MenuService;3、查詢結(jié)果修改完文件之后,執(zhí)行請(qǐng)求,查詢結(jié)果正常,打印SQL也正常SELECT`qt_admin_menu`.`menu_id`,`qt_admin_menu`.`parent_id`,`qt_admin_menu`.`menu_name`,`qt_admin_menu`.`icon`,`u`.`id`AS`selected`FROM`qt_admin_menu`AS`qt_admin_menu`LEFTOUTERJOIN`qt_admin_role_menu`AS`u`ON`qt_admin_menu`.`menu_id`=`u`.`menu_id`AND`u`.`role_id`='3'ORDERBY`qt_admin_menu`.`top_menu`ASC,`qt_admin_menu`.`list_order`ASC;結(jié)果數(shù)據(jù):{menu_id:'ef535c8a938665d1d0641a4e86ee83ed',parent_id:'a8e66f7be77c9bf71a2511331ac6ba32',menu_name:'列表組',icon:null,selected:null}但是再執(zhí)行一次就會(huì)報(bào)錯(cuò)了Youhaveusedthealiasuintwoseparateassociations.Aliasedassociationsmusthaveuniquealiases.網(wǎng)上也找不到相應(yīng)的問題,希望大神幫忙解決一下。非常感謝!
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

service里面的關(guān)聯(lián)查詢參考
constCategories=Product.hasMany(Tag,{as:'categories'});
Product.create({
id:1,
title:'Chair',
categories:[
{id:1,name:'Alpha'},
{id:2,name:'Beta'}
]
},{
include:[{
model:Categories,
as:'categories'
}]
})
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-08
  • 2 回答
  • 0 關(guān)注
  • 1383 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)