您当前的位置:首页 > 帝国CMS教程

帝国模型之间的字段关联前言

来源:帝国CMS教程发布者:帝国CMS模板网时间:2009-11-25

前言
模型之间的字段关联主要应用在同一个系统使用多个模型实现的情况下使用,用于实现多个模型之间的数据关联。如学校中的学生管理系统:一般要由学生档案模型、班级模型、学生成绩模型等组成,那如何将这些模型用学生姓名或编号关联在一起呢?这个就是我们今天要讲的帝国网站管理系统4.7新增的模型之间的字段关联功能,我们通过例子来了解下此功能的使用。

例子概要:
实现FLASH作品模型与FLASH作者模型的作者字段相关联。

操作步骤:
一、首页我们先建了个FLASH作者模型
(因本节主要是讲字段关联,有关模型增加就不多讲解,具体可以到教程区看下模型教程:http://bbs.phome.net/showthread-35-29387-0.html)
图1:建立后的“FLASH作者”数据表


图2:建立后的“FLASH作者”模型

图3:“FLASH作者”作者字段名为title

二、增加FLASH作者模型后,我们现在给FLASH作品模型的作者加上字段关联:
使FLASH作品模型与FLASH作者模型两边的作者相关联。
1、到“系统设置”->“数据表管理”->点击FLASH数据表的“管理字段”,如下图:

2、进入FLASH数据表的字段管理,点击修改“flashwriter”作者字段,如下图:

3、然后进入修改“flashwriter”作者字段,并进行字段关联设置,如下图:
说明:
(1)因我们建的“FLASH作者”数据表为“flashwriter”、作者字段名为“title”,所以关联字段设为:“flashwriter.title”
(2)数据同步:是指如果选择为数据同步,那么只要FLASH作者模型的作者更改了,FLASH作品模型的作者也会跟着更改;不设置数据同步则不同时更改。

三、查看加上关联字段后的效果。
说明:增加关联字段后,在增加“FLASH作品”时就可以选择“FLASH作者”模型所有增加的作者。如下图:

图1:加上字段关联后的FLASH作者录入元素

图2:点击选择按钮后弹出的选择“FLASH作者模型”数据的窗口

图3:FLASH作者模型录入的数据

四、“数据同步”选项的说明:
“数据同步”:是指如果选择为数据同步,那么只要FLASH作者模型的作者更改了,FLASH作品模型的作者也会跟着更改;不设置数据同步则不同时更改。

现在我们实验下,我们把FLASH作品中的作者选择为“李四”,然后提交,如下图:

接着我们到FLASH作者管理,把“李四”的名字改为“帝国”,然后提交,如下图:

这时我们返回FLASH作品管理看作品模型里的作者“李四”也更改为“帝国”,如下图:

当然如果字段关联不选择“数据同步”的话则修改FLASH作者模型数据后FLASH作品的作者就不会同时更新。

五、模型间字段关联的一些小技巧
上面我们给FLASH作品模型的作者加上字段关联后的“输入表单替换html代码”为如下:


<input name="flashwriter" type="text" id="flashwriter" value="<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[flashwriter]))?>" size="45">
<input type="button" name="changebutton" value="选择" onclick="window.open('db/ChangeField.php?viewf=title&changef=title&tbname=flashwriter&form=add&field=flashwriter','','width=700,height=550,scrollbars=yes');">


上面红色的参数说明:
viewf为选择页面显示内容的字段
changef为选择内容的字段
changeline为选择页面每行显示几条记录,不加此参数默认为一行显示2条

六、至此,模型之间字段关联讲解完毕。


更多帝国网站管理系统V4.7解密请听下回分解。


 

 

在内容页加如
[e:loop={"select * from rtys_ecms_flash where flashwriter='".$navinfor[title]."' order by id desc limit 10",10,24,0}]

<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a>


[/e:loop]标签调用 rtys_ecms_flash 目标数据表    flashwriter目标字段    $navinfor[title]当前字段