thinkphp多对多关联中间表relation_table表前缀支持变量填写的方法
2016-03-27 16:52
579 查看
thinkphp多对多关联MANY_TO_MANY中间表relation_table表前缀支持变量填写的方法
1、大家都知道,如果在多对多关联时relation_table中间表写死,那将无法满足cms安装时候支持表前缀自定义。
thinkphp3.2.2开始,relation_table定义支持简化写法,例如:
'relation_table'=>'__USER_GROUP__'
2、用法实例: protected $_link = array(
'News_Attr' => array( //dept可以随便取名字
'mapping_type' => self::MANY_TO_MANY,//这里跟3.1有点不一样
'class_name' => 'News',//要关联的模型类名(即表名)
'mapping_name' => 'child',//关联的映射名称,用于获取数据用(附表的关联字段)
'foreign_key' => 'attr_id',//关联的外键Id(主表的关联字段)
'relation_foreign_key' => 'news_id',//关联的外键Id(主表的关联字段)
'relation_table' => 'tuzi_attr_news' //此处应显式定义中间表名称,且不能使用C函数读取表前缀
),
);以上关联查询代码可以用下面代替,实现相同的效果:
protected $_link = array(
'News_Attr' => array( //dept可以随便取名字
'mapping_type' => self::MANY_TO_MANY,//这里跟3.1有点不一样
'class_name' => 'News',//要关联的模型类名(即表名)
'mapping_name' => 'child',//关联的映射名称,用于获取数据用(附表的关联字段)
'foreign_key' => 'attr_id',//关联的外键Id(主表的关联字段)
'relation_foreign_key' => 'news_id',//关联的外键Id(主表的关联字段)
'relation_table' => '__ATTR_NEWS__' //此处应显式定义中间表名称,且不能使用C函数读取表前缀
),
);
注意:relation_table里面的写法要大写。
1、大家都知道,如果在多对多关联时relation_table中间表写死,那将无法满足cms安装时候支持表前缀自定义。
thinkphp3.2.2开始,relation_table定义支持简化写法,例如:
'relation_table'=>'__USER_GROUP__'
2、用法实例: protected $_link = array(
'News_Attr' => array( //dept可以随便取名字
'mapping_type' => self::MANY_TO_MANY,//这里跟3.1有点不一样
'class_name' => 'News',//要关联的模型类名(即表名)
'mapping_name' => 'child',//关联的映射名称,用于获取数据用(附表的关联字段)
'foreign_key' => 'attr_id',//关联的外键Id(主表的关联字段)
'relation_foreign_key' => 'news_id',//关联的外键Id(主表的关联字段)
'relation_table' => 'tuzi_attr_news' //此处应显式定义中间表名称,且不能使用C函数读取表前缀
),
);以上关联查询代码可以用下面代替,实现相同的效果:
protected $_link = array(
'News_Attr' => array( //dept可以随便取名字
'mapping_type' => self::MANY_TO_MANY,//这里跟3.1有点不一样
'class_name' => 'News',//要关联的模型类名(即表名)
'mapping_name' => 'child',//关联的映射名称,用于获取数据用(附表的关联字段)
'foreign_key' => 'attr_id',//关联的外键Id(主表的关联字段)
'relation_foreign_key' => 'news_id',//关联的外键Id(主表的关联字段)
'relation_table' => '__ATTR_NEWS__' //此处应显式定义中间表名称,且不能使用C函数读取表前缀
),
);
注意:relation_table里面的写法要大写。
相关文章推荐
- PHP设计模式之:单例模式
- PHP记录 字符串 函数
- PHP连接数据库实现注册页面的增删改查操作
- YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie
- php的分页查询建立分页类
- php极速入门2
- php极速入门
- thinkPHP模板和框架简述
- php添加了环境变更,还是显示 不是内部或外部命令 (注:添加到目录即可,不加 php.exe
- 用php实现正方教务系统的模拟登陆
- PHP5中Cookie与 Session详解
- PHP string
- PHP Function usort
- 【MySQL】统一控制台-pma-PHP编码!解决中文乱码问题
- 【MySQL】统一控制台-pma-PHP编码!解决中文乱码问题
- phpMyAdmin 的“错误令牌不符”问题!
- test homework ~ coverage about method printPrimes
- THINKPHP导入全部post参数
- PHP学习--数组学习
- PHP中交互变量的优化