TP关联查询
时间:2011-04-20
来源:互联网
SELECT a.bulletinId,a.title,a.content,b.userName,a.createTime FROM sp_Bulletin a left outer join sp_user b on a.userid=b.userId
ThinkPHP里面怎么写?
(普通查询然后分页)$list=$Bulletin->limit($p->firstRow.','.$p->listRows)->order('bulletinId asc')->findAll();
得到的是
protected 'queryStr' => string 'SELECT * FROM `sp_bulletin` ORDER BY bulletinId asc LIMIT 30,5 ' (length=63)有人推荐用realtion做,在自己尝试的写了一个
但是不成功
我下载写一下Model类
BulletinModel.class.php
<?php
class BulletinModel extends Model
{
protected $_validate =array(
array('title','require','标题必须!',1),
array('content','require','内容必须'),
array('title','','标题已经存在',0,'unique',self::MODEL_INSERT),
);
protected $_auto=array(
array('userId','1',self::MODEL_INSERT),
array('createTime','time',1,'function'),
);
}
?>
UserModel.class.php
<?php
class UserModel extends Model{
}
?>
求帮助,
ThinkPHP里面怎么写?
(普通查询然后分页)$list=$Bulletin->limit($p->firstRow.','.$p->listRows)->order('bulletinId asc')->findAll();
得到的是
protected 'queryStr' => string 'SELECT * FROM `sp_bulletin` ORDER BY bulletinId asc LIMIT 30,5 ' (length=63)有人推荐用realtion做,在自己尝试的写了一个
但是不成功
我下载写一下Model类
BulletinModel.class.php
<?php
class BulletinModel extends Model
{
protected $_validate =array(
array('title','require','标题必须!',1),
array('content','require','内容必须'),
array('title','','标题已经存在',0,'unique',self::MODEL_INSERT),
);
protected $_auto=array(
array('userId','1',self::MODEL_INSERT),
array('createTime','time',1,'function'),
);
}
?>
UserModel.class.php
<?php
class UserModel extends Model{
}
?>
求帮助,
作者: 561887370 发布时间: 2011-04-20
HAS_ONE
HAS_ONE 关联表示当前模型拥有一个子对象,例如,每个员工都有一个人事档案。我们可以建立一个用户模型 UserModel ,并且添加如下关联定义:
class UserModel extends RelationModel
{
public $_link = array(
'Profile'=> HAS_ONE,
);
}
上面是最简单的方式,表示其遵循了系统内置的数据库规范,完整的定义方式是:
class UserModel extends RelationModel
{
public $_link = array(
'Profile'=> array(
'mapping_type' =>HAS_ONE,
'class_name' =>'Profile',
// 定义更多的关联属性
……
) ,
);
}
关联 HAS_ONE 支持的关联属性有:
mapping_type 关联类型,这个在 HAS_ONE 关联里面必须使用 HAS_ONE 常量定义。
class_name 要关联的模型类名
例如, class_name 定义为 Profile 的话则表示和另外的 Profile 模型类关联,这个 Profile 模型类是无需定义的,系统会自动定位到相关的数据表进行关联。
mapping_name 关联的映射名称,用于获取数据用
该名称不要和当前模型的字段有重复,否则会导致关联数据获取的冲突。如果 mapping_name 没有定义的话,会取 class_name 的定义作为 mapping_name 。如果 class_name 也没有定义,则以数组的索引作为 mapping_name 。
foreign_key 关联的外键名称
外键的默认规则是当前数据对象名称 _id ,例如:
UserModel 对应的可能是表 think_user (注意: think 只是一个表前缀,可以随意配置)
那么 think_user 表的外键默认为 user_id ,如果不是,就必须在定义关联的时候显式定义 foreign_key 。
condition 关联条件
关联查询的时候会自动带上外键的值,如果有额外的查询条件,可以通过定义关联的 condition 属性。
mapping_fields 关联要查询的字段
默认情况下,关联查询的关联数据是关联表的全部字段,如果只是需要查询个别字段,可以定义关联的 mapping_fields 属性。
as_fields 直接把关联的字段值映射成数据对象中的某个字段
这个特性是 ONE_TO_ONE 关联特有的,可以直接把关联数据映射到数据对象中,而不是作为一个关联数据。当关联数据的字段名和当前数据对象的字段名称有冲突时,还可以使用映射定义。
HAS_ONE 关联表示当前模型拥有一个子对象,例如,每个员工都有一个人事档案。我们可以建立一个用户模型 UserModel ,并且添加如下关联定义:
class UserModel extends RelationModel
{
public $_link = array(
'Profile'=> HAS_ONE,
);
}
上面是最简单的方式,表示其遵循了系统内置的数据库规范,完整的定义方式是:
class UserModel extends RelationModel
{
public $_link = array(
'Profile'=> array(
'mapping_type' =>HAS_ONE,
'class_name' =>'Profile',
// 定义更多的关联属性
……
) ,
);
}
关联 HAS_ONE 支持的关联属性有:
mapping_type 关联类型,这个在 HAS_ONE 关联里面必须使用 HAS_ONE 常量定义。
class_name 要关联的模型类名
例如, class_name 定义为 Profile 的话则表示和另外的 Profile 模型类关联,这个 Profile 模型类是无需定义的,系统会自动定位到相关的数据表进行关联。
mapping_name 关联的映射名称,用于获取数据用
该名称不要和当前模型的字段有重复,否则会导致关联数据获取的冲突。如果 mapping_name 没有定义的话,会取 class_name 的定义作为 mapping_name 。如果 class_name 也没有定义,则以数组的索引作为 mapping_name 。
foreign_key 关联的外键名称
外键的默认规则是当前数据对象名称 _id ,例如:
UserModel 对应的可能是表 think_user (注意: think 只是一个表前缀,可以随意配置)
那么 think_user 表的外键默认为 user_id ,如果不是,就必须在定义关联的时候显式定义 foreign_key 。
condition 关联条件
关联查询的时候会自动带上外键的值,如果有额外的查询条件,可以通过定义关联的 condition 属性。
mapping_fields 关联要查询的字段
默认情况下,关联查询的关联数据是关联表的全部字段,如果只是需要查询个别字段,可以定义关联的 mapping_fields 属性。
as_fields 直接把关联的字段值映射成数据对象中的某个字段
这个特性是 ONE_TO_ONE 关联特有的,可以直接把关联数据映射到数据对象中,而不是作为一个关联数据。当关联数据的字段名和当前数据对象的字段名称有冲突时,还可以使用映射定义。
作者: hajtjh 发布时间: 2011-04-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28